Redis持久化配置
本篇主要讲一下Redis的持久化方式,以及其配置步骤。
Redis
安装
1 | wget http://download.redis.io/releases/redis-5.0.5.tar.gz # 下载 |
注意,Redis默认是不支持远程访问的。
修改redis.conf 中的bind项为 0.0.0.0
需要在启动redis时指定配置文件路径(修改启动命令为./src/redis-server ./redis.conf)
以上命令均来源于中文官网 强烈建议按照官网教程安装
持久化
简介
Redis 提供了不同级别的持久化方式:
- RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.
- AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.
- 你也可以同时开启两种持久化方式, 在这种情况下, 当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整.
RDB
RDB配置方式
修改redis.conf文件,添加以下配置即可开启快照存储。(使用官方配置文件的话默认就是开启的)
1 | save 900 1 |
RDB工作方式
当 Redis 需要保存 dump.rdb 文件时, 服务器执行以下操作:
- Redis 调用forks. 同时拥有父进程和子进程。
- 子进程将数据集写入到一个临时 RDB 文件中。
- 当子进程完成对新 RDB 文件的写入时,Redis 用新 RDB 文件替换原来的 RDB 文件,并删除旧的 RDB 文件。
这种工作方式使得 Redis 可以从写时复制(copy-on-write)机制中获益。
RDB的优点
- 单一文件方便灾难恢复。
- 单一文件方便数据迁移。
- 数据量较大时,恢复速度相对AOF更快一些。
RDB的缺点
- 不是实时备份,如果出现意外停止,可能会丢失周期内的部分数据。
- 由于是全量备份,备份速度相对于AOF方式较慢。
RDB测试步骤
- 修改配置(参照#配置方式)
- 重启Redis
- 修改Redis中的数据
- 重启Redis
- 对比数据一致性
- 查看dump.rdb文件日期,可以查看备份时间
AOF
AOF配置方式
修改配置文件,将appendonly
项改为yes
,默认为no
AOF工作原理
每执行一条语句将语句存储到appendonly.aof
文件中。
AOF的优点
- 实时备份,数据不会丢失。
- 相比RDB而言备份速度较快。
AOF的缺点
- 由于每次执行命令都要记录命令,影响性能。
- 同数据量下,AOF的备份文件要比RDB文件大。
- 相比RDB而言,恢复速度略慢
测试步骤
- 修改配置(参照#配置方式)
- 重启Redis
- 修改Redis中的数据
- 重启Redis
- 对比数据一致性
- 查看appendonly.aof文件日期,可以查看备份时间
总结
Redis有两种持久化方式
- RDB: 快照模式,默认开启,不是实时备份,配置格式为
save 60 1000(60 秒内有至少有 1000 个键被改动)
- AOF模式,保存命令,实时备份,配置格式我为
appendonly yes
两者可以同时开启,同时开启时, 优先使用AOF恢复数据。
附录
- 中文官网
- 个人推荐的客户端AnotherRedisDesktopManager
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 KTHIRTY!