我一直在阅读一些Redis文档,并在http://try.redis-db.com/上尝试教程。到目前为止,我看不出Redis和Velocity或企业库缓存框架等缓存技术有什么不同
实际上,您只是使用唯一键将对象添加到内存中的数据存储中。似乎没有任何关系语义……
我错过了什么?
我一直在阅读一些Redis文档,并在http://try.redis-db.com/上尝试教程。到目前为止,我看不出Redis和Velocity或企业库缓存框架等缓存技术有什么不同
实际上,您只是使用唯一键将对象添加到内存中的数据存储中。似乎没有任何关系语义……
我错过了什么?
当前回答
它不仅仅是键值缓存,它是键数据结构缓存。 Redis不仅是缓存,也是一个数据存储。写入缓存的内容也会写入磁盘。这样我们就可以进行备份。这允许我们重新启动缓存节点。如果我们重新启动它们,我们的缓存节点将预先填充备份。我们可以重新启动整个集群。但是在Memcached中,当Memcached节点发生故障或重新启动时,存储在该节点上的所有密钥都会丢失 Redis也被用作消息队列
其他回答
不仅仅是一个缓存。
在内存中键值存储 支持多种数据类型(字符串、散列、列表、集、排序集、位图和超日志) 它提供了将缓存数据存储到物理存储中的能力(如果需要的话)。 支持发布-订阅模式 Redis缓存提供高可用性复制(主/从)
Redis拥有独特的能力,比如超快的lua脚本。它的执行时间等于C命令的执行时间。这也为工作许多高级对象(如锁和信号灯)所需的复杂Redis数据操作带来了原子性。
有一个基于内存数据网格的Redis,叫做Redisson,它允许在Java上轻松地构建分布式应用程序。感谢分布式锁,信号量,读写锁,CountDownLatch, ConcurrentMap对象和许多其他对象。
完美的工作在云中,并支持AWS Elasticache, AWS Elasticache集群和Azure Redis缓存支持
Redis的用法:
具有多种数据结构的缓存,如:字符串,set, zset,列表,散列和位图(可以在许多聚合用例中使用) KV DB。Reids内存中的数据可以存储在磁盘上:RDB和AOF可以获取快照和编辑日志。 消息队列。但是一条消息只能被一个消费者使用 Pubsub 分布式锁。依赖于setnx命令,只有成功执行该命令的第一个线程才能持有锁。https://redis.io/commands/setnx
它不仅仅是键值缓存,它是键数据结构缓存。 Redis不仅是缓存,也是一个数据存储。写入缓存的内容也会写入磁盘。这样我们就可以进行备份。这允许我们重新启动缓存节点。如果我们重新启动它们,我们的缓存节点将预先填充备份。我们可以重新启动整个集群。但是在Memcached中,当Memcached节点发生故障或重新启动时,存储在该节点上的所有密钥都会丢失 Redis也被用作消息队列
除了作为缓存服务器,Redis还是一个具体的数据结构服务器。 作为数据结构服务器形式的缓存意义重大,因为数据结构是程序或应用程序的基础。考虑到您正在使用SQL数据库作为存储技术,并需要构造一个列表,一个哈希映射,一个排名集或类似的东西,这是一种痛苦的脖子。Redis可以直接以非常简单的方式为您提供这些功能,从而极大地简化了开发。
另一方面,数据结构服务器不必采用缓存的形式。有些项目与Redis兼容,但有持久的存储引擎。