10

我们正在考虑对我们的应用程序使用缓存系统来进行数据查找。该数据将很少更改。我的发现是Redis, GemFire/ Geode, VoltDB,AerospikeHazlecast其他一些。我入围了 Geode 和 Redis。两者都是key-value内存存储。

Redis (C based) 似乎更易于使用,并且支持列表、哈希、集合、排序集合等数据类型。它还有一些 Java、NodeJS、C# 等可用的良好客户端。它支持多个节点(主-奴隶)。

Geode(基于 Java)似乎有更多的功能,考虑到它的存在日期很早。它具有存储数据的区域的概念。它有 Java、C#、C++ 版本的客户端。它具有构成系统的定位器和服务器。它支持分布式服务器/节点(非共享/无单点故障)。

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

4

1 回答 1

12

我主要使用 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,它仍然是一个不错的选择。

于 2017-07-04T13:47:58.043 回答