文章字数:517,阅读全文大约需要2分钟
redis支持数据类型丰富的持久化操作,可以把数据保存在磁盘中,防止宕机之类的情况下数据丢失。
持久化方式
RDB
:不定期使用异步方式保存二进制数据到磁盘,速度快、效率高、文件小。但是缓存一致性低。即如果半个小时备份一次,宕机到上一次备份直接的数据可能会丢失。保存文件过大还会导致redis
反应变慢(4.x之前默认)aof
:保存的是每次操作的命令,可以选择每秒同步、每次修改同步、不同步。优点是缓存一致性好,数据完整。缺点是文件大,redis
再次启动速度慢。会保存一些无用数据,比如已经被更改的数据。
配置
6379.conf
(监听的端口.conf)
搜索save
RDB
1 | save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。 |
快照在dump.rdb
中
AOF
1 | appendfsync always #每次有数据修改发生时都会写入AOF文件。 |
混合使用
- 开启混合模式
1
aof-use-rdb... yes
- 设置aof重写大小(也可以手动)
1 | auto-aof-rewrite-...两个 |
- 触发
AOF
的rewrite
时,会清空AOF
,直接保存当前redis
数据(并不是真的重写)数据都在aof文件里,以二进制+命令的形式存储