0

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

RavenDB 似乎可以正常工作,我可以在我的机器上的 Dropbox 文件夹上设置整个服务器文件目录,并在另一台机器上做同样的事情,同时 RavenDb 服务器从/向数据库读取和写入数据存储在投递箱文件夹中。

我理解两个数据库的概念非常不同,我只是以 RavenDB 的经验为例来解释我试图完成的事情。请注意,这仅用于开发目的,而不是在生产中运行。

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

谢谢

4

2 回答 2

0

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

您可能希望查看 Redis 集群 ( http://redis.io/topics/cluster-spec ) 的进展,目前处于规范阶段。

于 2013-03-02T08:02:31.727 回答
0

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

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

redis config set save ""

要禁用两者的保存但能够在需要时保存,您将执行上述操作并发出 by save 命令。

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

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

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

最终,如果你只是用它来开发一些东西,我认为不需要这样的设置。只需将配置存储在您可以下载的位置(Dropbox、github 等)并进行开发。将转储文件简单地复制到 Dropbox 或您需要的任何其他地方并不困难,而且肯定不那么复杂,而不是按照您的描述进行操作。

于 2013-03-03T05:26:08.543 回答