在许多服务器上部署redis

时间:2011-04-01 19:25:59

标签: database nosql distribution redis

我的网络应用程序正在使用redis作为主数据库。性能非常好。目前,我的数据库太大了,我想添加一些新的服务器进行存储。但我仍然坚持在解决方案中如何分配稳定且易于备份。

每个人都有什么想法?

非常感谢!

2 个答案:

答案 0 :(得分:2)

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

客户端分片和Redis群集都不能解决所有问题。例如,如果您需要进行集合的联合和交集,则除非两个集合碰巧驻留在同一个分片中,否则不能这样做(我相信Redis集群将有一些方法来处理它,但不会自动处理)。

另一个解决方案是Redis diskstore,但就像群集还没有完成一样。 Diskstore意味着您可以增大数据集大于RAM,并使用复制来扩展读取。

答案 1 :(得分:2)

根据我的理解,没有自动的方法将这个内置到redis本身(并且很难实现通用方式,因为它取决于你的应用程序将对这些数据做什么),你必须自己(或在像红宝石司机一样的司机。)

我认为你最好的选择是将这个逻辑放在你的应用程序中,不知道你的应用程序很难准确说出,但你可能会决定你的id的第一部分决定哪个redis服务器将存储密钥。

ruby​​驱动程序只是尝试在服务器之间分发密钥,或者从密钥名称中获取服务器索引(如果格式相应)(快速浏览一下代码后就像“{server_id} mykey”)

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