缓存系统 - Redis vs Geode/GemFire

Bri*_*rij 6 in-memory-database redis geode

我们正在考虑在我们的应用程序中使用缓存系统来进行数据查找.这些数据很少会发生变化.我发现用出来了Redis,GemFire/ Geode,VoltDB,Aerospike,Hazlecast和其他几个.我入围了Geode和Redis.两者都是key-value内存商店.

Redis(基于C语言)似乎更容易使用并支持数据类型,如列表,散列,集合,排序集等.它还有一些很好的客户端,可用Java,NodeJS,C#等.它支持多个节点(master -奴隶).

Geode(基于Java)似乎有更多的功能,因为它的存在可以追溯到很久以前.它具有存储数据的区域概念.它有Java,C#,C++等客户端.它具有制作系统的定位器和服务器.它支持分布式服务器/节点(非共享/无单点故障).

我搜索互联网,但在读/写速度,内存使用,磁盘I/O转储,扩展,安全性方面找不到这两者之间的任何比较.有没有人遇到过这样的情况?

mp9*_*1de 9

我主要在Redis工作,但在去年为Pivotal工作时,我开始了解Geode(Pivotal Gemfire的开源变体).不过可能会有偏见.

Redis主要是一个独立的Key-Value商店,由Salvatore Sanfilippo推动,HA和分片选项(Sentinel,Cluster)是在很晚的时候建立的.Redis的速度非常快,如果你喜欢性能而不是一致性,Redis是个不错的选择.Redis唯一的安全功能是基于密码的身份验证,但您宁愿在传输级别上保护它,这需要额外的工作.除了社区之外没有任何支持,或者您选择商业Redis产品(例如RedisLabs).

Geode(大约一年前的开源Pivotal GemFire,现在GemFire基于Geode)是由Pivotal推动多年的产品.它的构建考虑了一致性,HA和数据分布 - 称之为内存数据网格.Geode的安全层是可扩展和可插拔的,因此您可以根据需要定制它.如果您想获得商业支持,那么Pivotal可以满足您的需求.

Geode具有Redis协议适配器,允许您将Redis客户端连接到Geode并使用Redis数据结构和命令的子集.从Redis 3.2的角度来看,它并不完整,但如果您想要与单个键值存储产品集成,并且您不想使用Redis和Geode,那么它仍然是一个不错的选择.