内存存储解决方案:类型、应用与选择
1. 内存存储的风险与常见缓存系统
在数据存储中,仅将数据存储在内存中存在一定风险。因为一旦缓存节点丢失,数据也会随之丢失。不过,像 EHCache(www.ehcache.org)这类系统,提供了扩展功能以支持穿透读、穿透写和后写等特性。但对于处理持续数据流的流处理系统而言,双重写入和变更传播会成为显著的瓶颈。如果分析结果是临时的且无需持久化,这个瓶颈可能不算问题;但通常情况下,我们会关注历史数据,此时使用缓存系统就需要对流分析结果进行双重写入,可能会产生大量开销。
以下是该领域一些流行的开源缓存产品:
| 产品名称 | 特点 |
| ---- | ---- |
| Memcached(http://memcached.org) | 流行的缓存产品,需采用绕写策略来保持数据的时效性。 |
| EHCache(www.ehcache.org) | 复杂的缓存系统,支持后写、穿透写和穿透读等多种使用场景。 |
| Hazelcast(http://hazelcast.org) | 功能强大,不仅有缓存功能,在缓存方面支持穿透读和穿透写策略。 |
| Redis(http://redis.io) | 常用的内存缓存选项,有自己的持久化文件格式,但需自行构建相关策略。 |
2. 内存数据库与内存数据网格
内存数据库(IMDBs)有时也被称为内存数据库管理系统和内存数据网格(IMDGs)。与缓存系统不同,IMDBs 和 IMDGs 设计为使用磁盘进行数据的非易失性持久化。虽然这类产品使用的存储介质并非仅为 DRAM,但它们优先使用内存,其次才是磁盘。实际上,磁盘存储通常仅用于日志记
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



