1.数据库架构演变
DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。
在项目实际开发过程,有的直接采用JDBC技术进行数据库持久化操作,有的采用目前很好用的ORM框架来进行数据库持久化操作。 ORM耦合度较高
mysql 单表可支持500万数据
6.今天是什么样子: 淘宝
nginx代替appche 高可用 负载均衡 两台nginx 应用服务器tomcat 集群 mysql集群
2.NOSQL
能干什么
redis 一秒可以写8万次 读可以达到11万次
1.什么是bson
高频词汇放到redis里面,会员 redis使用聚合模型来避免聚合查询,现在公司使用分布式部署,分库部署,与下图的分布式事务不是一个概念
redis的聚合模型
nosql 数据库的四大分类: 后面redis主要是k-v键值的形式
redis kv键值类
文档数据库: MongoDB
nosql是CAP
CAP只能三选二 不能同时满足三个
再数据并发比较大时候,牺牲c(变为弱一致性) 达到高可用和分布式容错性的目的
base :基本可用
3.redis
1.是什么
memcache 被redis所取代,因为redis支持更多的数据类型
2.能干什么
3.下载地址
http://redis.io/
http://www.redis.cn/
4.安装
tar -zxvf redis-5.0.8.tar.gz cd redis-5.0.8
make distclean # 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
make
make install
可以不 make test
补充:目录作用 /opt 主机额外安装软件摆放的目录 /etc 系统配置文件 /usr/local 软件的安装目录,包含软件的配置文件,再此启动软件
5.启动
mkdir myredis
cp redis.conf myredis
cd myredis
vim redis.conf
cd /usr/local/bin redis-server /usr/local/etc/redis-5.0.8/myredis/redis.conf pe -ef | grep redis
redis-cli -p 6379
ping pong 即连接成功
SHUTDOWN 会杀掉server服务
------------恢复内容结束------------
------------恢复内容开始------------
1.数据库架构演变
DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。
在项目实际开发过程,有的直接采用JDBC技术进行数据库持久化操作,有的采用目前很好用的ORM框架来进行数据库持久化操作。 ORM耦合度较高
mysql 单表可支持500万数据
6.今天是什么样子: 淘宝
nginx代替appche 高可用 负载均衡 两台nginx 应用服务器tomcat 集群 mysql集群
2.NOSQL
能干什么
redis 一秒可以写8万次 读可以达到11万次
1.什么是bson
高频词汇放到redis里面,会员 redis使用聚合模型来避免聚合查询,现在公司使用分布式部署,分库部署,与下图的分布式事务不是一个概念
redis的聚合模型
nosql 数据库的四大分类: 后面redis主要是k-v键值的形式
redis kv键值类
文档数据库: MongoDB
nosql是CAP
CAP只能三选二 不能同时满足三个
再数据并发比较大时候,牺牲c(变为弱一致性) 达到高可用和分布式容错性的目的
base :基本可用
3.redis
1.是什么
memcache 被redis所取代,因为redis支持更多的数据类型
2.能干什么
3.下载地址
http://redis.io/
http://www.redis.cn/
4.安装
tar -zxvf redis-5.0.8.tar.gz cd redis-5.0.8
make distclean # 清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件
make
make install
可以不 make test
补充:目录作用 /opt 主机额外安装软件摆放的目录 /etc 系统配置文件 /usr/local 软件的安装目录,包含软件的配置文件,再此启动软件
5.启动
mkdir myredis
cp redis.conf myredis
cd myredis
vim redis.conf
cd /usr/local/bin redis-server /usr/local/etc/redis-5.0.8/myredis/redis.conf # 使用配置文件启动 pe -ef | grep redis
redis-cli -p 6379
ping pong 即连接成功
SHUTDOWN 会杀掉server服务
redis的使用
1. redis的杂项知识
1.自测本机redis性能
cd /usr/local/bin
redis-benchmark #自测本机性能
2.redis是个单进程 使用的epoll实现多路IO复用
3.默认16个库,0-15 4. 切换库 select 3 5. 查看当前库key的数量 Dbsize 6.redis默认索引从0开始 7.默认端口6379
8.统一密码管理: 16个库都是同样的密码
3.redis的数据类型
key
keys * 查看 所有的key exists key 的名字,判断key是否存在 move key db: move k1 2 expire key 秒钟:为给定的key设置过期时间 ttl key 查看还有多少秒过期: time to alive 过期之后此将被从此库中删除 set k2 doodo : 已存在则覆盖 get k2 : 获取value
append : append k1 12345 ==> get k1 ==> 'ty12345' STRLEN k1 : k1 value字符串长度 ==> 7
set k2 2 :
INCR k2 : 每次自增1
INCRBY k2 3 每次自增3
get k2: ‘3’为字符串
DECR k2
DECRBY k2 2
数据操作:字符串、列表、哈希(字典)、无序集合、有序(排序)集合 有序集合:游戏排行榜 字符串: set key value get key mset k1 v1 k2 v2 ... 添加多个 mget k1 k2 ... 查找多个 setex key exp value 设置过期时间 incrby key increment 增加 列表: rpush key value1 value2 ... lpush key value1 value2 ... lrange key bindex eindex lindex key index lpop key | rpop key linsert key before|after old_value new_value 哈希: hset key field value hget key field hmset key field1 value1 field2 value2 ... hmget key field1 field2 hkeys key hvals key hdel key field 集合: sadd key member1 member2 ... sdiff key1 key2 ... sdiffstore newkey key1 key2 ... sinter key1 key2 ... sunion key1 key2 ... smembers key spop key 有序集合: zadd key grade1 member1 grade2 member2 ... # 添加数据 zadd game 10 jeff 20 bob 30 tom zincrby key grade member # 给指定添加 zincrby game 40 jeff zrange key start end # 取后3名 zrange game 0 2 zrevrange key start end #取前3名 zrevrange game 0 2
4.redis的配置
密码管理
""" ***在windows上配置好验证需要前台启动 1)提倡在配置文件中配置,采用配置文件启动 requirepass 密码 2)当服务启动后,并且连入数据库(redis数据库不能轻易重启),可以再改当前服务的密码(服务重启,密码重置) config set requirepass 新密码 3)已连入数据库,可以查看当前数据库服务密码 config get requirepass auth 输入密码 """
连接数据库
1)默认连接:-h默认127.0.0.1,-p默认6379,-n默认0号数据库,-a默认无密码 >: redis-cli 未改端口,默认6379 >: redis-cli -p 6380 比如改了端口的情况下 2)完整连接: >: redis-cli -h ip地址 -p 端口号 -n 数据库编号 -a 密码 3)先连接,后输入密码 >: redis-cli -h ip地址 -p 端口号 -n 数据库编号 >: auth 密码
数据持久化 ********* RDB && AOF
RDB
1)配置文件默认配置 save 900 1 # 超过900秒有1个键值对操作,会自动调用save完成数据持久化 save 300 10 # 超过300秒有10个键值对操作,会自动调用save完成数据持久化 save 60 10000 # 超过60秒有10000个键值对操作,会自动调用save完成数据持久化 2)安全机制 # 当redis服务不可控宕机,会默认调用一下save完成数据持久化(如果数据量过大,也可能存在部分数据丢失) 3)主动持久化 >: save # 连入数据库时,主动调用save完成数据持久化 注:数据持久化默认保存文件 dump.rdb,保存路径默认为启动redis服务的当前路径
redis的常用配置
1)绑定的ip地址,多个ip用空格隔开 bind 127.0.0.1 2)端口,默认6379,一般不做修改 port 6379 3)是否以守护进程启动,默认为no,一般改为yes代表后台启动(windows系统不支持) daemonize no 4)定义日志级别,默认值为notice,有如下4种取值: debug(记录大量日志信息,适用于开发、测试阶段) verbose(较多日志信息) notice(适量日志信息,使用于生产环境) warning(仅有部分重要、关键信息才会被记录) loglevel notice 5)配置日志文件保持地址,默认打印在命令行终端的窗口上 如果填写 "./redis.log" 就会在启动redis服务的终端所在目录下,用redis.log记录redis日志 logfile "" eg)终端首先切断到log文件夹所在目录(一般就可以采用redis的安装目录,也可以自定义),再启动reids服务 logfile "./log/redis.log" 6)数据库个数,默认是16个,没特殊情况,不建议修改 databases 16 7)数据持久化 save 900 1 # 超过900秒有1个键值对操作,会自动调用save完成数据持久化 save 300 10 # 超过300秒有10个键值对操作,会自动调用save完成数据持久化 save 60 10000 # 超过60秒有10000个键值对操作,会自动调用save完成数据持久化 8)数据库持久化到硬盘失败,redis会立即停止接收用户数据,让用户知道redis持久化异常,避免数据灾难发生(重启redis即可),默认为yes,不能做修改 stop-writes-on-bgsave-error yes 9)消耗cpu来压缩数据进行持久化,数据量小,但会消耗cpu性能,根据实际情况可以做调整 rdbcompression yes 10)增持cpu 10%性能销毁来完成持久化数据的校验,可以取消掉 rdbchecksum yes 11)持久化存储的文件名称 dbfilename dump.rdb 12)持久化存储文件的路径,默认是启动服务的终端所在目录 dir ./ 13)reids数据库密码 requirepass 密码
------------恢复内容结束------------
------------恢复内容结束------------