微信登录

持久化 - RDB - 备份Redis - 恢复速度快

持久化 - RDB - 备份Redis - 恢复速度快
方向 命令 注释
数据端 redis-cli 进入redis
数据端,redis内 save 手动保存,直接阻塞保存,线上不用,安装目录中创建dump.rdb
数据端,redis内 bgsave 手动保存,创建子进程保存,线上可用,安装目录中创建dump.rdb
数据端 /var/lib/redis 路径
数据端,redis内 CONFIG GET dir 找不到就在redis里,找安装目录
恢复端 备份文件 (dump.rdb) 移动到 redis 安装目录
  1. # 恢复端
  2. # 终端
  3. ps axu|grep redis
  4. # 查找redis-server的PID
  5. kill -9 PID
  6. 重启redis

自动保存

  1. # redis.conf
  2. save m n
  3. m秒内数据集存在n次修改时,自动触发bgsave

如果从节点执行全量复制操作,主节点自动执行bgsave生成RDB文件并发送给从节点
执行debug reload命令重新加载Redis时,也会自动触发save操作
默认情况下执行shutdown命令时,如果没有开启AOF持久化功能则自动执行bgsave。

保存恢复

  1. # 备份数据集为dump.rdb.bak
  2. cp dump.rdb dump.rdb.bak
  3. # 删除了原本数据集
  4. rm -rf dump.rdb
  5. # 在数据集丢失情况将备份作为主数据集(改名)
  6. mv dump.rdb.bak dump.rdb

redis-check-rdb filenameRDB检查工具

  1. [offset 0] Checking RDB file dump.rdb
  2. [offset 26] AUX FIELD redis-ver = '5.0.9'
  3. [offset 40] AUX FIELD redis-bits = '64'
  4. [offset 52] AUX FIELD ctime = '1692704931'
  5. [offset 67] AUX FIELD used-mem = '19813464'
  6. [offset 83] AUX FIELD aof-preamble = '0'
  7. [offset 85] Selecting DB ID 0
  8. [offset 1218] Selecting DB ID 1
  9. [offset 7733] Selecting DB ID 2
  10. [offset 7780923] Selecting DB ID 3
  11. [offset 7992522] Selecting DB ID 4
  12. [offset 7996049] Selecting DB ID 5
  13. [offset 10030377] Selecting DB ID 7
  14. [offset 10033702] Selecting DB ID 9
  15. [offset 10034126] Checksum OK
  16. [offset 10034126] \o/ RDB looks OK! \o/
  17. [info] 5433 keys read
  18. [info] 7 expires
  19. [info] 0 already expired