内存缓存和内存数据库之间的区别

时间:2016-05-03 23:04:49

标签: caching redis memcached in-memory-database voltdb

我想知道我是否可以在内存缓存(redis,memcached),内存数据网格(gemfire)和内存数据库(VoltDB)之间找到区别。我很难区分3之间的关键特征。

4 个答案:

答案 0 :(得分:1)

我不了解gemfire和VoltDB,但即使是memcached和redis也是如此。 Memcached是一个非常简单的缓存,一个以非常复杂的方式存储变量的地方,然后检索它们,这样您就不必在每次需要数据时都进行文件或数据库查找。变量的类型非常简单。另一方面,Redis实际上是一个内存数据库,有一个非常有趣的数据类型选择。它具有很好的数据类型,可用于排序列表,适用于排行榜等应用程序。您将新记录添加到数据中,并自动对其进行排序。

所以我不会太挂在类别上。您确实需要以不同方式检查每个工具,以了解它可以为您做什么,以及您正在构建的应用程序。它有点像试图在nosql数据库上进行比较 - 它们都非常不同,并做得很好。

答案 1 :(得分:1)

我想补充一点,“数据库”类别中的内容往往比简单的“缓存”具有更多保护和复制数据的功能。缓存是临时的(通常),因为数据库数据应该是持久的。我见过的许多缓存解决方案都不会持久存储到磁盘上,所以如果你失去了整个集群的电源,你就会丢失缓存中的所有内容。

但也有一些缓存解决方案也具有持久性和复制功能,因此线条模糊不清。

答案 2 :(得分:0)

缓存-根据定义,它存储在内存中。存储在内存(RAM)中以加快访问速度的任何数据称为缓存。示例:Ehcache,Memcache通常,您将对象放入String为Key的缓存中,并使用Key访问缓存。这是非常简单的。它取决于何时访问cahce vs数据库的应用程序,并且Cache中不会发生复杂的处理。如果缓存跨越多台计算机,则称为分布式缓存。例如, Netflix 使用基于Memcache的EVCAche来存储您在主屏幕上看到的用户电影推荐。

在内存数据库中-它具有缓存的所有功能以及处理/查询功能。 Redis属于此类别。 Redis支持多种数据结构,您可以在Redis中查询数据(例如获取最近访问的10个项目,获取使用最多的项目等示例)。它可以跨越多台计算机,通常具有很高的性能,并且在需要时还支持对磁盘的持久性。例如, Twitter 使用Redis数据库存储时间轴信息。

答案 3 :(得分:0)

内存缓存是一种常见的查询存储,因此可以减轻 DB 的读取工作负载。内存缓存的常见示例是 Redis 缓存。例如,网站可以存储客户进行的热门搜索,从而减轻 DB 的某些负载。

内存缓存在缓存(将会话数据存储在 RAM(临时存储)中)之上提供查询功能。

Memcache 属于临时存储缓存类别。