开启现有 Redis 实例的 AOF 功能(如果实例已经启用 AOF 功能则忽略此步骤)
# redis-cli -h ip -p port config set appendonly yes `
通过AOF文件将数据导入到新的 Redis 实例 (假定生成的 AOF 文件名为 append.aof)
# redis-cli -h ip -p 6379 -a pass --pipe < appendonly.aof
append.aof 文件分析
假设 redis 内存有「name:Jhon」的键值对,那么进行 AOF 持久化后,AOF 文件有如下内容:
*2 # 2个参数 $6 # 第一个参数长度为 6 SELECT # 第一个参数 $1 # 第二参数长度为 1 8 # 第二参数 *3 # 3个参数 $3 # 第一个参数长度为 4 SET # 第一个参数 $4 # 第二参数长度为 4 name # 第二个参数 $4 # 第三个参数长度为 4 Jhon # 第二参数长度为 4
所以对上面的内容进行恢复,能得到熟悉的一条 redis 命令:SELECT 8;SET name Jhon.
可以想象的是,redis 遍历内存数据集中的每个 key-value 对,依次写入磁盘中;redis 启动的时候,从 AOF 文件中读取数据,恢复数据。
修改
*2 # 2个参数
$6 # 第一个参数长度为 6
SELECT # 第一个参数
$1 # 第二参数长度为 1
8 # 第二参数
为
*2 # 2个参数
$6 # 第一个参数长度为 6
SELECT # 第一个参数
$2 # 第二参数长度为 1
15 # 第二参数
可以将 数据导入到 15号 db
可能会有多个 select DB, 需要仔细查看
redis-cli -h 127.0.0.1 -p 6379 shutdown 停止 redis