关于选择哪种 NoSQL 的另一个问题。
但是,我还没有发现有人要求这种类型的目的,消息存储......
我有一个 Erlang 聊天服务器,我已经在使用 MySQL 来存储 friend 列表和“需要加入”信息。
我想存储消息(该用户没有收到,因为他离线......)并检索它们。
我已经预先选择了 NoSQL,我不能使用像 MongoDB 这样的东西,因为它是面向 RAM 的范式,并且不能像其他人一样集群。
我想我的 list 有 3 个选择:
我知道他们的模型不同,一个使用键/值,另一个使用 SuperColumns 和 co。
到目前为止,我偏爱 Riak,因为它是 Erlang 的稳定客户端库。
我知道我可以将 Cassandra 与 Thrift 一起使用,但它似乎与 Erlang 不太稳定(我没有得到很好的返回)
我现在对 HBase 一无所知,只知道它存在并且基于 Cassandra 和 Riak 之类的 Dynamo。
所以这是我需要做的:
现在,我对那些 NoSQL DB 真的很陌生,我一直是 MySQL 爱好者,这就是为什么我问你这个问题,作为一个新手,有没有比我更有经验的人可以帮助我选择哪个更好,并且会让我做我想做的一切而没有太多麻烦......
谢谢 !
最佳答案
我不能代表 Cassandra 或 Hbase,但让我谈谈 Riak 部分。
是的,Riak 适合您的场景(我已经看到多家公司和社交网络将其用于类似目的)。
要实现这一点,您需要简单的 Riak Key/Value 操作,以及某种索引引擎。您的选择是(按偏好的粗略顺序):
运行一些性能测试,以选择最快的方法。
就架构而言,我建议使用两个存储桶(对于您描述的设置):一个用户存储桶和一个消息存储桶。
索引消息桶。 (通过将搜索索引与其关联,或通过 2i 存储 user_key)。这使您可以执行所有必需的操作(并且消息日志不必放入内存中):
multiFetch
能力,客户端)。 关于erlang - 哪个集群 NoSQL DB 用于消息存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10286080/