RDB持久化 redis默认开启了rdb存储,保存在redis目录下的dump.rdb,策略如下
save 900 1 save 300 10 save 60 10000 如果满足900秒内有1个键值被改动,则自动保存一次数据集 如果满足300秒内有10个键值被改动,则自动保存一次数据集 如果满足60秒内有10000个键值被改动,则自动保存一次数据集
AOF持久化 默认不开启,需要在redis.conf中开启
appendonly yes
appendfilename "appendonly.aof"
#appendfsync always appendfsync everysec #appendfsync no
auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb appendonly默认是no,改为yes就开启了AOF持久化,默认文件名称为appendonly.aof
修改appendfilename可以修改默认文件名称
追加同步操作appendfsync有三个选项 always:每当有新命令追加到AOF文件都会执行一次fsync,非常慢也非常安全 everysec:每隔一秒执行一次fsync,足够快,即使数据丢失也只是一秒的数据 no:从不进行fsync,将数据交给操作系统处理,更快却更不安全
aof文件相当于一个命令日志,每当有一条命令执行,都会被追加到文件末尾,例如我们循环执行100次set操作,就会有100条记录,虽然99条记录都是多余的,此时我们就需要缩减aof文件
方法一: cd redis根目录/src/redis-cli 127.0.0.1:6379>bgrewriteaof 1 2 通过命令行来手工执行rewrite操作,此时我们在看aof文件,确实比原来少了很多。
方法二: 通过配置文件auto-aof-rewrite-percentage和auto-aof-rewrite-min-size和参数,当aof文件满足条件的时候自动触发rewrite操作。 auto-aof-rewrite-percentage:aof重写百分比 auto-aof-rewrite-min-size:aof重写最小值 两个条件相辅相成,只有同时满足才会触发rewrite操作。 例如你原来的aof文件为2MB,即使现在已经达到4MB,满足了auto-aof-rewrite-percentage的100%的条件,但是由于auto-aof-rewrite-min-size最小值为64MB,不满足,所以仍然不会触发rewrite操作。
|
|