我正在为我的项目之一(医疗保健语义搜索引擎)使用三重商店数据库,它工作得很好。我正考虑通过在三重商店之上使用一层关键值存储来提高性能。自从我们进行深度语义处理以来,三重查询查询速度较慢。决定合适的键值存储:Voldemort vs Cassandra vs Memcached vs Redis
这是我正在计划以提高性能:
1)运行Hadoop的工作对所有的查询词,每天通过查询三重存储。 2)将这些结果缓存到集群中的关键值存储中。 3)当用户搜索查询词时,不是搜索三重存储,而是先搜索键值存储。只有在关键值存储中找不到查询字词时,才会搜索三重存储。
我打算保存的键值对是一个“String”到“POJO映射列表”。我可以将它保存为BLOB。
我很困惑使用哪个关键值存储。我正在寻找主要的故障转移和负载平衡支持。我需要的只是一个提供上述功能的简单键值存储。我不需要在值或任何其他功能中进行排序/搜索。
如果我错了,请纠正我。我假设memcached,并且Redis将会更快,因为它在内存中。但我不知道Redis(Jredis)或memchaced(Spymemcached)的任何Java客户端是否支持故障切换。我不确定是在内存还是在持久存储中。我也在考虑Voldemort,Cassandra和HBase。总体关键值将大约为2GB至4GB。任何指针都会很有帮助。
我对nosql和关键价值商店很新。如果您需要更多详细信息,请告诉我。
除了复制和失败处理外,'Voldemort'允许您使用Hadoop(只读存储器)创建存储,所以您可以将步骤1)和2)合并为 。要查看的值的大小也是需要考虑的因素,请查看:https://groups.google.com/forum/?fromgroups=#!topic/project-voldemort/ZUHE06ksZ58 –