Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
共享同一dump.rdb文件的两台redis服务器的陷阱_Redis - Fatal编程技术网

共享同一dump.rdb文件的两台redis服务器的陷阱

共享同一dump.rdb文件的两台redis服务器的陷阱,redis,Redis,我需要澄清一个概念。我有两个redis服务器在一个VM上运行。服务器1通过TCP连接,服务器2通过UNIX套接字连接。我也即将把TCP服务器转换成UNIX 第一个实例的conf文件指定以下位置来保存数据库转储:/var/lib/redis/dump.rdb 第二个实例的conf文件也指定了完全相同的位置和文件 这是否意味着保存的DB文件包含两台redis服务器的数据?我需要确保在重新启动服务器时,此特定场景不会使我丢失数据。作为一个初学者,我真的很想听听专家的意见。提前感谢。不,这意味着一台服务

我需要澄清一个概念。我有两个redis服务器在一个VM上运行。服务器1通过TCP连接,服务器2通过UNIX套接字连接。我也即将把TCP服务器转换成UNIX

第一个实例的conf文件指定以下位置来保存数据库转储:/var/lib/redis/dump.rdb

第二个实例的conf文件也指定了完全相同的位置和文件


这是否意味着保存的DB文件包含两台redis服务器的数据?我需要确保在重新启动服务器时,此特定场景不会使我丢失数据。作为一个初学者,我真的很想听听专家的意见。提前感谢。

不,这意味着一台服务器会覆盖另一台服务器的rdb文件。使用配置文件为每台服务器指定不同的转储文件。

感谢您在Itamar中的提示。我已经在配置中将第二台redis服务器的dbfilename更改为dump2.rdb。有没有办法让此设置在不重新启动服务器的情况下生效?当然-只需配置set dbfilename dump2.rdb即可在运行时应用它。。。之后,您可以通过执行BGSAVE并查看文件是否存在来进行验证。顺便说一句:即使两台redis服务器之间的密钥没有名称空间冲突,也会发生上述覆盖?转储只是-如果文件与当前数据一起存在,redis会覆盖该文件。奇怪的是,在过去的一个小时左右,只有dump2.rdb一直在更新,dump.rdb在我使用config set后一直保持不变,一直到字节。这是一个实时项目,流量相当可观,而且两台redis服务器都有经常更新的密钥。我想我可能误解了这里的某些东西。