Redis的强劲性能很大程度上是由于它所有的数据都存储在内存中,当然如果redis重启或者服务器故障导致redis重启,所有存储在内存中的数据就会丢失。但是在某些情况下,我们希望Redis在重启后能够保证数据不会丢失。
这时我们希望Redis能将数据从内存中以某种形式同步到硬盘上,使得重启后可以根据硬盘中的记录来恢复数据。Redis支持两种方式的持久化,一种是RDB方式、另一种是AOF(append-only-file)方式,两种持久化方式可以单独使用其中一种,也可以将这两种方式结合使用。
RDB的持久化方式是通过快照(snapshotting)完成的,它是Redis默认的持久化方式,配置如下。
# save 3600 1
# save 300 100
# save 60 10000
Redis允许用户自定义快照条件,当符合快照条件时,Redis会自动执行快照操作。快照的条件可以由用户在配置文件中配置。配置格式如下
save <seconds> <changes>
第一个参数是时间窗口,第二个是键的个数,也就是说,在第一个时间参数配置范围内被更改的键的个数大于后面的changes时,即符合快照条件。当触发条件时,Redis会自动将内存中的数据生成一份副本并存储在磁盘上,这个过程称之为“快照”,除了上述规则之外,还有以下几种方式生成快照。
修改redis.conf文件,表示5秒内,有一个key发生变化,就会生成rdb文件。
save 5 1 # 表示5s以内至少发生1个key变化(新增、修改、删除),则重写rdb文件
save 300 100
save 60 10000
修改文件存储路径
dir /data/program/redis/bin
其他参数配置说明
如果需要关闭RDB的持久化机制,可以参考如下配置,开启 save ,并注释其他规则即可
save ""
#save 900 1
#save 300 10
#save 60 10000