redis 持久化配置 无缝从rdb切换到aof 安全保留数据redis
redis默认持久化配置rdb,可是若是贸然切换配置到aof方式,重启会致使数据丢失
问题vim
redis默认持久化配置rdb,可是若是贸然切换配置到aof方式,重启会致使数据丢失缓存
若是数据不重要,都是缓存数据则没什么,若是是重要临时数据,不能丢失的状况,则须要特殊处理,保证数据不丢失安全
根本缘由app
rdb
方式默认将数据持久化存储到dump.rdb
文件下aof
方式默认将数据写操做记录到appendonly.aof
文件下aof
方式rdb
rdb
方式,而后贸然切换到aof
,重启后会读取aof
文件,可是这个时候aof
文件是空的,则会致使redis被清空解决方法code
原理:在redis控制台动态配置打开aof
方式,在shutdown
安全退出后,自动记录了当前全部记录到aof
文件,再修改redis文件配置打开aof
方式,启动redis时会自动加载以前安全退出保存的aof
数据
进入redis内存
redis-cli
redis中动态修改配置并退出同步
127.0.0.1:6379> save # 收到触发rdb存储数据 OK 127.0.0.1:6379> CONFIG SET appendonly yes # 动态配置 OK 127.0.0.1:6379> save OK 127.0.0.1:6379> shutdown save # 安全退出并存储数据 not connected>
修改redis配置,打开aof
vim redis.conf
it
appendonly no #aof方式默认关闭
service redis start
附录原理
rdb配置
save 900 1 #在900秒(15分钟)以后,若是至少有1个key发生变化,则dump内存快照。 save 300 10 #在300秒(5分钟)以后,若是至少有10个key发生变化,则dump内存快照。 save 60 10000 #在60秒(1分钟)以后,若是至少有10000个key发生变化,则dump内存快照。
aof配置
appendonly no #aof方式默认关闭 appendfilename "appendonly.aof" #文件名 appendfsync everysec #同步模式(可选no always everysec) no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes