redis持久化配置

时间:2023-10-06 16:18:08

redis有rdb和aof两种持久化方式;

rdb

默认方式,配置文件中相关的有:

save 900 1    #900秒一次,若有1个或以上key修改则save一次,以下相同
save 300 10
save 60 10000
dbfilename dump.rdb #备份的文件名
dir /data/redis/6379 #rdb和aof文件的所在路径

rdb方式就是传统的备份,把数据都写到一个文件里;

优点:备份的文件存储和还原都方便快捷;

缺点:出现异常的时候会丢失数据,另外理论上save时不影响使用,但实践中出现过数据量太大save很长时间且期间redis性能大降甚至不可用;

关闭rdb备份,只需要把那三个save开头的配置项都注释即可;

aof

默认是关闭的,配置文件中相关的有:

appendonly no    #改为yes开启aof
appendfilename "appendonly.aof" #aof文件名 # appendfsync always #每次修改都记录到aof
appendfsync everysec #每秒记录一次(三选一,这个是默认)
# appendfsync no #由操作系统决定 auto-aof-rewrite-percentage 100 #增长超过100%时rewrite
auto-aof-rewrite-min-size 64mb #aof文件不超过64m时,不进行rewrite,可以适当调大,比如512或1024

aof是把操作记录写到文件中,还原的时候也是一条条执行一遍

优点:数据非常重要就用always,普通的用everysec兼顾性能和安全,最大限度避免丢失;

缺点:会重复记录同一个key的多次修改,文件会较大,重启和还原很慢,不过rewrite可以解决一大部分;

总结

实践过程中,由于出现过数据量非常大时save导致业务不可用的情况,所以现在都是用的aof everysec,定期在业务不忙时(比如深夜)手动进行save;

如果配置了主从,可以考虑主aof,从save;

over