说明
- Redis-10-Redis持久化
- 包含不同范围的持久性选项说明、持久化数据备份步骤、数据备份文件损坏修复、相关配置文件
- 官方文档:https://redis.io/documentation
- Redis命令参考:http://redisdoc.com/
核心概念
》什么是Redis持久化呢?
- 简单说就是将Redis数据存入磁盘(好吧这是废话)
》Redis 提供了不同范围的持久性选项:
- RDB(Redis 数据库):RDB 持久性以指定的时间间隔执行数据集的时间点快照。
- 该方式数据库文件:dump.rdb
- Redis定时自动备份数据集快照文件,这个频率可以在配置文件中修改。底层实现使用了Linux的“写时复制技术”。
- Redis重启以后会将dump.rdb中的数据重新读取出来
- 缺点:最后一次备份以后到宕机这段时间内的数据是丢失的
- AOF(Append Only File):AOF 持久化记录服务器接收到的每个写操作,在服务器启动时再次播放,重建原始数据集。命令使用与 Redis 协议本身相同的格式以仅附加方式记录。当日志变得太大时,Redis 能够在后台重写日志。
- 该方式数据库文件:appendonly.aof
- 以日志的形式记录每一个写操作(增量保存),只追加文件但不改文件
- Redis重启以后会将 中的数据重新读取出来
- 无持久性:如果您愿意,您可以完全禁用持久性,如果您希望您的数据只要服务器正在运行就存在。
- RDB + AOF:可以在同一个实例中结合 AOF 和 RDB。请注意,在这种情况下,当 Redis 重新启动时,AOF 文件将用于重建原始数据集,因为它保证是最完整的。
》Redis持久化数据备份步骤
- 一般都是定时备份数据库持久化文件(dump.rdb或appendonly.aof)
》数据备份文件损坏修复
[admin@192 ~]$ /usr/local/redis/bin/redis-check-rdb ./dump.rdb
[admin@192 ~]$ /usr/local/redis/bin/redis-check-aof ./appendonly.aof
》相关配置文件
- RDB相关配置项(redis.conf)
# 数据库持久化存储频率,格式:save <秒> <写操作次数>
# 比如以下第一条规则:每900秒有至少1次写操作时保存一次,后边的同理
save 900 1
save 300 10
save 60 10000
# 不推荐使用sava,更推荐使用bgsave模式
# 持久化数据库文件名
dbfilename dump.rdb
# 数据库持久化文件存储路径
dir ./
# 当Redis无法写入磁盘是是否关闭Redis写操作,推荐yes
stop-writes-on-bgsave-error yes
# 数据库文件是否进行压缩
rdbcompression yes
# 检查数据完整性,推荐yes,如果关闭了那么如果有不完整的数据也是无效数据。开启会损耗10%左右性能,希望更高性能可以关闭
rdbchecksum yes
- AOF相关配置项(redis.conf)
# 是否开启AOF,默认关闭
appendonly no
# AOF模式数据库文件名
appendfilename "appendonly.aof"
# AOF同步频率:总是同步、每秒同步、从不主动同步(由操作系统同步)
# appendfsync always
appendfsync everysec
# appendfsync no