Redis 的落地策略其实就是持久化(Persistence),主要有以下2种策略:
RDB: 定时快照方式(snapshot)
AOF: 基于语句追加文件的方式
RDB
RDB 文件非常紧凑,它保存了 Redis 某个时间点上的数据集。RDB 恢复大数据集时速度要比 AOF 快。但是 RDB 不适合那些对时效性要求很高的业务,因为它只保存了快照,在进行恢复时会导致一些时间内的数据丢失。实际在进行备份时,Redis 主要依靠 rdbSave() 函数,然后有两个命令会调用这个函数 SAVE 和 BGSAVE,前者会同步调用,阻塞主进程导致会有短暂的 Redis-server 停止工作,后者会 fork 出子进程异步处理。
在调用 SAVE 或者 BGSAVE 时,只有发布和订阅功能的命令可以正常执行,因为这个模块和服务器的其他模块是隔离的。
下面的命令表示: “60 秒内有至少有 1000 个键被改动”时进行RDB文件备份。
redis-server> SAVE 60 1000