我一直在阅读一些Redis文档,并在http://try.redis-db.com/上尝试教程。到目前为止,我看不出Redis和Velocity或企业库缓存框架等缓存技术有什么不同

实际上,您只是使用唯一键将对象添加到内存中的数据存储中。似乎没有任何关系语义……

我错过了什么?


当前回答

Redis的用法:

具有多种数据结构的缓存,如:字符串,set, zset,列表,散列和位图(可以在许多聚合用例中使用) KV DB。Reids内存中的数据可以存储在磁盘上:RDB和AOF可以获取快照和编辑日志。 消息队列。但是一条消息只能被一个消费者使用 Pubsub 分布式锁。依赖于setnx命令,只有成功执行该命令的第一个线程才能持有锁。https://redis.io/commands/setnx

其他回答

Redis支持的数据结构,如字符串,哈希,列表,集,排序集与范围查询,位图,超对数,地理空间索引与半径查询和流。Redis具有内置复制、Lua脚本、LRU清除、事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster提供高可用性和自动分区。

用python实现

https://beyondexperiment.com/vijayravichandran06/redis-data-structure-with-python/

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缓存提供高可用性复制(主/从)

实际上,相对数据表示(或任何类型的数据表示)和数据库角色(缓存、永久持久化等)之间没有依赖关系。

Redis很适合缓存,这是事实,但它不仅仅是一个缓存。它是高速全内存数据库。它确实在磁盘上持久化数据。它不是关系型的,而是键值存储。

我们在生产中使用它。Redis帮助我们构建每秒处理数千个请求的软件,并在整个自然生命周期内保存客户业务数据。