我一直在阅读一些Redis文档,并在http://try.redis-db.com/上尝试教程。到目前为止,我看不出Redis和Velocity或企业库缓存框架等缓存技术有什么不同
实际上,您只是使用唯一键将对象添加到内存中的数据存储中。似乎没有任何关系语义……
我错过了什么?
我一直在阅读一些Redis文档,并在http://try.redis-db.com/上尝试教程。到目前为止,我看不出Redis和Velocity或企业库缓存框架等缓存技术有什么不同
实际上,您只是使用唯一键将对象添加到内存中的数据存储中。似乎没有任何关系语义……
我错过了什么?
当前回答
Redis是一个最适合分布式环境/微服务架构的缓存。
它快速,可靠,提供原子性和一致性,并具有一系列数据类型,如集,散列,列表等。
我从去年开始使用它,它真的是一个救世主,当你需要非常快速地提供一个生产就绪的解决方案时,对于任何与性能相关的问题,你总是可以使用它来缓存数据。
其他回答
除了到目前为止所作的回答之外,再来总结一下
Redis是一个非常快速的非关系数据库,它存储了键到五种不同类型值的映射(字符串、散列、列表、集、排序集、位图和超对数)。@Sripathi Krishnan回答说。 Redis支持在磁盘上的内存持久存储 复制以扩展读性能 客户端分片以扩展写性能
如果你想获得更多关于Redis的细节和深度信息,你可以看看Redis In Action和Redis Essentials的书。
除了作为缓存服务器,Redis还是一个具体的数据结构服务器。 作为数据结构服务器形式的缓存意义重大,因为数据结构是程序或应用程序的基础。考虑到您正在使用SQL数据库作为存储技术,并需要构造一个列表,一个哈希映射,一个排名集或类似的东西,这是一种痛苦的脖子。Redis可以直接以非常简单的方式为您提供这些功能,从而极大地简化了开发。
另一方面,数据结构服务器不必采用缓存的形式。有些项目与Redis兼容,但有持久的存储引擎。
它不仅仅是键值缓存,它是键数据结构缓存。 Redis不仅是缓存,也是一个数据存储。写入缓存的内容也会写入磁盘。这样我们就可以进行备份。这允许我们重新启动缓存节点。如果我们重新启动它们,我们的缓存节点将预先填充备份。我们可以重新启动整个集群。但是在Memcached中,当Memcached节点发生故障或重新启动时,存储在该节点上的所有密钥都会丢失 Redis也被用作消息队列
另外,Redis还有缓存之外的功能。基于最新的Redis文档(https://redis.io/docs/modules/), Redis有一些外部模块,支持不同类型的任务,如:
Redis搜索,全文搜索功能 Redis Graph,在Redis之上的图形数据库 Redis时间序列模块,将时间序列数据结构添加到Redis。 复述,人工智能, Redis的神经网络,Redis的神经网络模块 等。
就我个人而言,我使用Redis作为消息队列,使用芹菜作为Django REST框架应用程序,而不是在生产中缓存。
Redis拥有独特的能力,比如超快的lua脚本。它的执行时间等于C命令的执行时间。这也为工作许多高级对象(如锁和信号灯)所需的复杂Redis数据操作带来了原子性。
有一个基于内存数据网格的Redis,叫做Redisson,它允许在Java上轻松地构建分布式应用程序。感谢分布式锁,信号量,读写锁,CountDownLatch, ConcurrentMap对象和许多其他对象。
完美的工作在云中,并支持AWS Elasticache, AWS Elasticache集群和Azure Redis缓存支持