2010-09-10 68 views
16

简单的问题,我可以想象使用redis而不是mysql的各种Web应用程序:社交网络,地理位置服务等?redis可以完全替代mysql吗?

+1

你*可以*,问题是*应该*你?在我看来,答案可能不是一切。 – 2010-09-10 09:25:25

+4

我只是喜欢有一个数据库系统的想法。 – 2010-09-10 09:31:23

回答

11

没有什么是不可能的IT。但有些事情可能会变得非常复杂。

将键值存储用于全文搜索等事情可能会非常痛苦。另外,据我所知,它缺乏对大型集群数据库的支持:所以在MySQL上,如果你在数据库和Redis上增长了超过100 GB的数据库,就没有问题了......好吧,它需要更多努力:-)

所以用它来开发它,存储简单的东西,只需要通过id retreived。

+2

我该如何做一些事情,比如获取所有以用户开始的密钥......值小于5的地方? – 2010-09-10 09:32:32

+0

@Travis Glines,以及它的开源,所以你可以实现它:-D – BarsMonster 2010-09-10 11:55:37

+1

Travis Glines:能够使该查询以允许你这样做的格式存储你的数据(一个有序集合应该适用于这个目的) 。如果您希望能够进行一般查询,请使用关系数据库。 – rpetrich 2010-09-29 06:52:04

5

ACID如果数据完整性很重要,那么合规是必须的。医疗记录和金融交易将是一个例子。包括Redis在内的大多数NoSQL解决方案都很快,因为它们交换ACID属性以提高速度。

有时使用关系数据库来表示数据更简单,查询更简单。

此外,由于关系数据库中的外部关系和约束条件,您的数据更可能是正确的。在NoSQL解决方案中保持数据同步更加困难。

所以,不,我不认为我们可以谈论完全替代。他们是不同工作的不同工具。我不会把我的锤子换成螺丝刀。