Redis持久化

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操作。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值