redis持久化配置
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