是否可以在两台计算机上运行Redis服务器,并且每个服务器在配置文件中指定相同的快照转储文件名和目录,目录和文件显然在两台计算机之间共享?
RavenDB似乎可以正常工作,我可以在我的机器上的Dropbox文件夹上设置整个服务器文件目录,并在另一台机器上执行相同操作,同时两个下拉框同步,而RavenDb服务器从/读取和写入数据到存储在dropbox文件夹中的数据库。
我理解这两个DB的概念是非常不同的,我只是以RavenDB的经验为例来解释我试图完成的事情。请注意,这仅用于开发目的,而不是在生产中运行。
我在版本2.4.5中运行Redis作为Windows服务,并使用BookSleeve作为C#.Net 4.5中的客户端
由于
答案 0 :(得分:0)
肯定不是。这将是确保文件损坏的可靠方法。
您可能希望在目前处于规范阶段的Redis群集(http://redis.io/topics/cluster-spec)上观看进度。
答案 1 :(得分:0)
唯一一次在没有启用持久性的系统上使用转储文件是在启动时。但是,如果禁用持久性,则不会从转储文件中读取。
即使没有转储文件上的服务器特定数据,当两个服务都写入文件时,任何时候都会出现损坏的可能性。您可以将持久性设置设置为仅保存,例如,在60秒内有5900万次更改。这可能允许您在加载时读取文件但不保存。然后你需要使用
redis config set save ""
要禁用两者中的保存但能够在需要时保存,您可以执行上述操作并发出按保存命令。
我还必须建议不要在共享文件系统上执行此操作,这是您需要在多台计算机访问同一文件时执行此操作。在你的情况下,你说的是Dropbox作为你的共享文件系统,但如果你坚持使用磁盘,这很可能会破坏性能。
但最终,我不得不问为什么你认为你需要这个?
如果您使用一个只读,则使用一个或两个从属并对从属进行读取。这样您就不必担心多个实例会破坏持久性文件。这样可以避免使用共享存储,因为您有两个节点,每个节点都运行一个数据副本。这提供了冗余,您可以相对轻松地进行主/从故障转移设置。
最终,如果你只是用它来开发一些东西,我认为不需要这样的设置。只需存储配置,您可以下载它(Dropbox,github等)并开发。简单地将转储文件复制到Dropbox或其他任何需要它的地方并不困难,而且不那么复杂。