目录
一 基本操作
二 执行流程
三 reids持久化
四 rdb和aof持久化的过程
五 为什么会有内存碎片
六 redis组从复制
一 基本操作
set :存放数据 例如 set 键值 内容 set k kokoko k就是键值 kokoko就是内容
get:获取数据 例如 get k 就会出来 k对应的数据
keys 查询键值对 keys * 就是查询所有的键值
exists 查询键值是否存在 exists k 键值存在就返回1
del 键值 删除指定的键值对
type 键值 查询键值对应的数据类型 strings字符串 lists列表 hashes哈希值 sets有序等
rename 原键值 目标键值 原键值替换目标键值内容也进行替换
renamenx 键值 新键值 对键值进行改名
dbsize 查看数据库中的键值数目
config set requirepass 密码 给数据库设密码 auth 密码 登陆数据库
config get requirepass 查看密码 只有登陆上去才会显示
select 序号 切换库
move 键值 库号 把 键值移动到库号中
flushdb 清空当前数据库flushall 清空全部数据库
二 执行流程
1.redis父进程首先判断是否执行save,bgsave,bgrewriteaof的子进程,如果执行会返回命令
2.父进程执行fork操作子进程,这个过程中父进程是阻塞的,redis不能执行客户端的任何命令
3.父进程执行fork后,生成进程备份后不在阻塞父进程,客户端可以响应其他命令
4.子进程创建rdb文件,根据父进程内存生成临时快照文件,完成后对源文件进行替换
5.子进程完成备份,向父进程发送信号表示完成,父进程更新统计信息
三 reids持久化
1.rdb和aof的基本理解
rdb周期性的把内存中的数据保存在磁盘中
aof 从redis的操作日志记录中将执行的过程同步到磁盘中
四 rdb和aof持久化的过程
rdb1
从内存中写入磁盘中保存
写入磁盘中会进行压缩来减少.rdb占磁盘的大小
aof
在内存中append追加到缓冲区 来调用cpu资源写在磁盘中操作日志的执行语句追加到缓冲区 掉用cpu写入磁盘
会周期性的进行重写
rdb和aof的触发方式
rdb 手动触发
自动触发save m n
特殊触发 stop关闭会触发 shutdown不会触发 kill不会触发
aof
手动触发
自动触发 每条进行触发 每秒进行触发 不触发rdb优先级 如果开启aof会先aof 没有开启就是rdb
五 为什么会有内存碎片
1.储存数据时系统申请的空间比实际需求大一点
2.频繁更改数据
六 redis组从复制
要装主从复制需要三台机器一主两备
主master的设置
从的设置
另外一个也是一样的设置
在主master上验证从节点
redis-cli info replication