Redis 可以通过以下方式实现数据备份:
- 使用Redis持久化功能生成RDB文件进行备份:
- 通过SAVE或BGSAVE命令可以生成Redis的RDB文件,该文件保存了某个时间点的全部数据集快照。
- 将生成的RDB文件复制到其他机器上作为备份,以防止数据丢失。
- 如果服务器故障,可以使用rdb文件在其他Redis实例上进行数据恢复。
例如:
# 生成RDB文件dump.rdb
127.0.0.1:6379> SAVE
# 拷贝dump.rdb到其他机器
# 如果6379节点故障,可以在新节点执行
127.0.0.1:6380> RESTORE dump.rdb
- 使用Redis AOF持久化功能生成AOF文件进行备份:
- AOF日志文件保存了Redis服务器执行的所有写操作记录。
- 将AOF日志文件复制到其他机器上作为备份,以防止数据丢失。
- 如果服务器故障,可以使用AOF文件在其他Redis实例上进行数据恢复。
例如:
# redis.conf开启AOF功能
appendonly yes
# 当AOF文件体积过大时,会生成AOF.bak文件
# 将AOF和AOF.bak文件拷贝到其他机器
# 如果6379节点故障,可以在新节点执行
127.0.0.1:6380> AOF REWRITE # AOF重建
- 使用Redis复制功能在主从节点之间同步数据作为备份:
- 通过配置文件中的replicaof参数指定Redis主节点地址,使得从节点与主节点的数据保持同步。
- 如果主节点故障,可以将其中一个从节点提升为新的主节点,其他从节点重新复制新的主节点。
- 从而实现故障转移和数据备份。
例如:
# 主节点6379
redis-server redis.conf
# 从节点6380
redis-server redis.conf replicaof 127.0.0.1 6379
# 如果6379节点故障,执行
127.0.0.1:6380> SLAVEOF no one # 提升为主节点
127.0.0.1:6381> SLAVEOF 127.0.0.1 6380 # 重新复制新的主节点