Redis提供了两种持久化选项,分别是RDB和AOF。 redis
默认状况下60秒刷新到disk一次[save 60 10000 当有1w条keys数据被改变时],Redis的数据集保存在叫dump.rdb一个二进制文件,这种策略被称为快照。 安全
也能够手动调用Save或BGSAVE命令的: 服务器
1
|
/usr
/local
/bin
/redis-cli
-h 127.0.0.1
-p
6379
-a
pwd bgsave
|
快照易恢复,文件也小,可是若是遇到宕机等状况的时候快照的数据可能会不完整。此时可能须要启用另外一种持久化方式AOF,在配置文件中打开[appendonly yes]。 app
AOF刷新日志到disk的规则:
appendfsync always #always 表示每次有写操做都进行同步,很是慢,很是安全。
appendfsync everysec #everysec表示对写操做进行累积,每秒同步一次
官方的建议的everysec,安全,就是速度不够快,若是是机器出现问题可能会丢失1秒的数据。 spa
也能够手动执行bgrewriteaof进行AOF备份: 日志
1
|
/usr
/local
/bin
/redis-cli
-h 127.0.0.1
-p
6379
-a
pwd bgrewriteaof
|
咱们如今的作法是一主(Master)多从(Slave)只作了读写分离,Master负责写入和AOF持久化,Slave负责读取。天天经过Slave作RDB备份[官方给的建议是每小时备份RDB文件,看你的策略和业务类型了],而且会用脚本将相应的备份文件推送到备份服务器。
当redis服务器挂掉时,重启时将按照如下优先级恢复数据到内存: 内存
恢复时须要注意,要是主库挂了不能直接重启主库,不然会直接覆盖掉从库的AOF文件,必定要确保要恢复的文件都正确才能启动,不然会冲掉原来的文件。 ci