redis持久化

rdb(redis database):

触发rdb条件(默认)

save "" : 不使用RDB存储

save 900 1 : 表示15分钟(900秒钟)内至少1个键被更改则进行快照

save 300 10 : 表示5分 钟(300秒)内至少10个键被更改则进行快照

save 60 10000 :表示1分钟内至少10000个键被 更改则进行快照

rdb方式:

当触发rdb时,redis会fork出一个子进程进行快照,当新的rdb文件生成好后,替换老的rdb,任何时候rdb文件都是完整的,并且是一个压缩的二进制文件,缩小占用空间

 

aof:默认情况下 Redis 没有开启 AOF ( append only file )方式的持久化。

开启 AOF 持久化后,每执行一条会更改 的 AOF 文件,这一过程显然会降低性能(可使用ssd提高性能)

aof同步到磁盘方式:

appendfsync always:实时同步到磁盘

appendfsync everysec:每秒同步到磁盘

appendfsync no:不强制同步到磁盘,写入系统缓存pagecache,由操作系统自动写入磁盘。

解决aof过大问题:

由于aof是一直往文件中追加命令的方式,类似于mysql binlog,这样文件会越来越大,redis解决这个问题的方式是重写aof文件,

重写aof会优化命令,比如

127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> set a 2
OK

这两条命令会合并成set a 2,第一条命令没用了会被优化掉,过期的数据也不必再加入。

重写条件:

1、表示当前aof文件大小超过上一次aof文件大小的百分之多少的时候会进行重写。如果之前没有重写过,以 启动时aof文件大小为准
auto-aof-rewrite-percentage 100

2、 限制允许重写最小aof文件大小,也就是文件小于64mb的时候,不需要进行优化

auto-aof-rewrite-min-size 64mb

 

优缺点:

rdb:

优点:性能高,持久化时fork一个子进程,不影响父进程操作,不影响用户使用。

缺点:时间间隔备份数据,间隔中redis宕机会丢失数据;由于是fork一个子进程,如果数据更新非常频繁,需要不停的生成rdb,反而会影响性能。

 

aof:

优点:数据不丢失

缺点:实时写入磁盘性能低

 

存储数据同时开始rdb和aof,缓存数据采用默认的方式只开启rdb

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值