我想知道In-Memory缓存(redis, memcached),In-Memory数据网格(gemfire)和In-Memory数据库(VoltDB)之间的区别。我很难区分这3者之间的关键特征。
我想知道In-Memory缓存(redis, memcached),In-Memory数据网格(gemfire)和In-Memory数据库(VoltDB)之间的区别。我很难区分这3者之间的关键特征。
缓存 - 按照定义,指的是存储在内存中。为了更快速地访问而存储在内存(RAM)中的任何数据都被称为缓存。例如:Ehcache、Memcache 。通常您使用字符串作为键将对象放入缓存中,并使用该键访问缓存。这非常直接明了。什么时候访问缓存和数据库取决于应用程序,缓存中不进行任何复杂处理。如果缓存跨多个机器,则称之为分布式缓存。例如,Netflix 使用建立在 Memcache 之上的 EVCache 存储用户在主页上看到的电影推荐。
内存数据库 - 它具有缓存的所有功能,还包括一些处理/查询功能。Redis 属于此类别。Redis 支持多种数据结构,并且可以查询 Redis 中的数据(例如获取最近使用过的 10 个项目、获取最常用的项目等)。它可以跨多台计算机,通常性能非常高,并且支持必要时将数据持久保存到磁盘。例如,Twitter 使用 Redis 数据库存储时间线信息。
内存缓存是常见的查询存储,因此减轻了数据库的读取工作量。内存缓存的常见示例是Redis缓存。例如,网站存储客户端进行的热门搜索,从而减轻了数据库的一些负载。
内存缓存在缓存之上提供查询功能(将会话数据存储在RAM(临时存储)中)。
Memcache属于临时存储缓存类别。