Redis的持久化实战配置

Redis持久化

RDB(快照)和AOF(记录数据命令过程,日志)

RDB

save命令
输入save命令,会在data目录下生成一个dump.rdb文件

修改配置文件6379的。
vim /conf/redis-6379.conf

dbfilename dump-6379.rdb  存储文件名称

rdbcompression yes  开启压缩

rdbchecksum yes	开启检测

重启redis
ps -ef|grep redis
kill -s 9 进程号
在这里插入图片描述
可以通过rdb启动的时候自动恢复
save指令的rdb方式会占用资源,会造成redis阻塞。

第二种rdb方式,后台执行

bgsave指令,不是立即执行的

发送指令到redis,会返回消息,会调用fork子进程,创建rdb文件,返回redis
bgsave对save阻塞问题进行优化。

相关配置
stop-writes-on-bgsave-error yes 后台存储过程出现错误,是否停止保存操作

第三种rdb方式,自动执行

配置save second changes
如果second时间范围内,监控到changes数量的key发生变化,就会进行持久化

save 900 1 900秒内一次变化
在conf/redis-6379.conf里面配置

save 10 2 每10秒2个key发生变化就会持久化,在data目录下产生rdb文件

save配置原理:要根据时机情况配置

save指令是同步的,阻塞客户端,但没有额外的内存消耗,不会启动新进程
bgsave指令,异步,非阻塞客户端,会产生额外的内存消耗,会产生新进程

rdb特殊化的启动形式

全量复制

服务器运行过程中重启
debug reload

关闭服务器时指定保存数据
shutdown save

RDB优缺点

存的时二进制文件,存储效率高

RDB内存redis某个时间点的快照,非常适合数据备份

RDB恢复速度比AOF速度快

用于灾难恢复

可能造成数据丢失

数据量巨大,效率非常低

AOF
日志,实时持久化。
有指令过来,先放到缓存区,为了生成aof文件

AOF写数据三种方式

always(每次)
0失误,性能较低

everysec(每秒)
宕机会丢失1秒的数据,建议使用,也是默认配置

no(系统控制)

配置文件开启AOF功能

配置appendonly yes|no   是否开启AOF持久化,默认不开启状态
配置appendfsync always|everysec|no
配置appendfilename filename    设置生成的aof文件名
配置dir     设置文件存放的位置

重新启动redis-server conf/redis-6379.conf
在data目录下会产生一个aof文件appendonly.aof 默认大小是0

set相同的key,只需要执行最后一条key就可以,也就是aof的重写
AOF重写

降低磁盘空间

恢复变快

AOF重写规则
进程内已超时的数据不在写入文件

忽略无效指令

对同一个数据的多条指令合并为一条命令

AOF重写方式,手动和自动
手动重写: bgrewriteaof

自动重写:auto-aof-rewrite-min-size size 当前文件大于这个大小就重写
auto-aof-rewrite-percentage percentage 达到百分比就重写
在这里插入图片描述

在这里插入图片描述
RDB和AOF区别?
在这里插入图片描述

原创文章 41 获赞 11 访问量 1476

猜你喜欢

转载自blog.csdn.net/weixin_44038332/article/details/105850753