2个redis服务器可以共享同一个快照转储文件吗?

本文关键字:转储 快照 文件 同一个 共享 redis 服务器 2个 | 更新日期: 2023-09-27 18:02:03

是否有可能在两台机器上运行Redis服务器,并且每个服务器在配置文件中指定相同的快照转储文件名和目录,目录和文件显然在两台机器之间共享?

RavenDB似乎工作得很好,我可以在我的机器上的Dropbox文件夹上设置整个服务器文件目录,并在另一台机器上做同样的事情,两个投递箱同步,而RavenDB服务器读取和写入数据从/到存储在投递箱文件夹内的数据库。

我知道这两个db的概念是非常不同的,我只是用RavenDB的经验作为例子来解释我试图完成的。请注意,这只是用于开发目的,而不是在生产中运行。

我正在运行Redis 2.4.5版本作为Windows服务,并使用BookSleeve作为客户端在c# .Net 4.5

谢谢

2个redis服务器可以共享同一个快照转储文件吗?

当然不是。这将是确保文件损坏的可靠方法。

你可能想看看Redis Cluster (http://redis.io/topics/cluster-spec)的进展,目前处于规范阶段。

在没有启用持久性的系统上使用转储文件的唯一时间是在引导时。但是,如果禁用了持久性,则不会从转储文件中读取。

即使转储文件中没有特定于服务器的数据,当两个服务都写入文件时,损坏的可能性也随时存在。您可以将持久性设置设置为仅在60秒内发生5900万次更改时保存。这可能允许您在加载时读取文件,但不保存到文件中。然后需要使用

redis config set save ""

要禁用保存,但可以在需要时保存,您可以执行上述操作并发出by save命令。

我还必须建议不要在共享文件系统上执行此操作,这是您需要在多台机器访问同一文件时执行的操作。在您的情况下,您正在谈论Dropbox作为您的共享文件系统,但如果您坚持使用磁盘,这可能会降低性能。

但最终,我不得不问你为什么认为你需要这个?

如果您使用一个用于只读,那么使用一个或两个从节点,并在从节点上进行读操作。这样,您就不必担心多个实例会破坏持久性文件。这避免了共享存储的需要,因为您有两个运行的节点,每个节点都有一份数据副本。这提供了冗余,您可以相对容易地进行主/从故障转移设置。

最终,如果你只是用它来开发一些东西,我不认为需要这样的设置。只需将配置存储在可以下载的地方(Dropbox, github等),然后继续开发。简单地将你的转储文件复制到Dropbox或其他任何你需要的地方并不困难,当然也不那么复杂。