如何从多个rdb文件恢复redis

1mrurvl1  于 2021-06-08  发布在  Redis
关注(0)|答案(1)|浏览(765)

多个rdb文件来自不同的redis服务器。现在我想把这些数据文件合并到一个redis服务器上。到目前为止,我只能通过一个dump.rdb文件找到恢复的答案。

sy5wg1nm

sy5wg1nm1#

最简单的方法是使用 DEBUG RELOAD ,一个未记录的命令。 DEBUG RELOAD [MERGE] [NOFLUSH] [NOSAVE] 将rdb保存在磁盘上并重新加载到内存中。默认情况下,它将保存rdb文件并将其加载回。
NOFLUSH 选项当前数据库在加载新数据库之前不会被删除,但是conficts-in-keys将导致服务器异常终止。
什么时候 MERGE 使用时,将加载冲突的密钥(加载的rdb文件中的密钥将获胜)。
什么时候 NOSAVE 使用时,服务器不会在加载前将当前数据集保存在rdb文件中。
使用 DEBUG RELOAD NOSAVE 当您只想加载您放置在redis工作目录中的rdb文件以替换内存中的当前数据集时。
使用 DEBUG RELOAD NOSAVE NOFLUSH MERGE 当您想添加当前rdb文件中的内容时,将其放在redis current目录中,并带有当前内存内容。
使用 DEBUG RELOAD 当您要验证redis是否能够将当前数据集持久化到rdb文件中时,请刷新内存内容并将其加载回。“,
以上摘自 debug.c ,应用友好格式。
所以,使用 DEBUG RELOAD NOSAVE NOFLUSH 如果要确保不同RDB中没有重复的密钥。使用 DEBUG RELOAD NOSAVE NOFLUSH MERGE 如果你知道你有重复的,加载最后一个你想占上风。

相关问题