多个rdb文件来自不同的redis服务器。现在我想把这些数据文件合并到一个redis服务器上。到目前为止,我只能通过一个dump.rdb文件找到恢复的答案。
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 如果你知道你有重复的,加载最后一个你想占上风。
DEBUG RELOAD
DEBUG RELOAD [MERGE] [NOFLUSH] [NOSAVE]
NOFLUSH
MERGE
NOSAVE
DEBUG RELOAD NOSAVE
DEBUG RELOAD NOSAVE NOFLUSH MERGE
debug.c
DEBUG RELOAD NOSAVE NOFLUSH
1条答案
按热度按时间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
如果你知道你有重复的,加载最后一个你想占上风。