2011-04-01 130 views
1

我的web应用程序使用redis作为主数据库。表现非常好。目前,我的数据库太大,我想添加一些新的服务器进行存储。但我仍然坚持解决方案如何在稳定和易于备份的分布。在许多服务器上部署redis

大家有什么想法吗?

非常感谢!

回答

2

从我明白有做着这个内置的Redis本身没有自动的方式(与我们很难implementa通用的方法,因为它取决于你的应用程序将这些数据做),你必须自己做(或司机喜欢红宝石司机)。

我认为你最好的选择是把你的应用程序中的逻辑放在你的应用程序中,而不需要你的应用程序的任何知识,这很难准确地说出来,但你可以决定你的ID的第一部分决定哪个redis服务器存储密钥。

红宝石驾驶者只需尝试将密钥服务器之间分发或如果格式化键名都在服务器指数也(像“{SERVER_ID}的myKey”快速浏览后的代码)

[编辑] 可能的解决方案: - https://github.com/gmr/mredis

+0

您的回复非常有帮助。虽然,这不是一个真正的解决方案。谢谢! – anhtran 2011-04-06 17:34:53

+0

我不是你想达到什么是很清楚,你要找到一种方法,做配电自动为你喜欢我描述或者是你寻找不同的东西,我误解你的需要? – Schmurfy 2011-04-07 08:16:26

+0

不,你明白正确。但我需要一个快速解决方案。因为,建立一个新的驱动程序需要很长时间。而我的服务器严重过:) – anhtran 2011-04-08 06:56:53

2

您没有提及您使用的是哪种语言。如果是Ruby,那么驱动程序有一个client side sharding solution,它解决了很多问题。 antirez正在为Redis提供群集解决方案,但仍未完成。

虽然客户端分片和Redis集群都不能解决所有问题。例如,如果您需要进行联合和交集,除非两个集合恰好位于同一个分片中(我相信Redis集群将有一些方法来处理这个问题,但不会自动执行)。

另一种解决方案是Redis磁盘存储,但就像集群尚未完成。磁盘存储意味着您可以将数据集增大到大于RAM,并使用复制来扩展读取。

+0

我使用Python进行开发。 – anhtran 2011-04-03 16:37:52