Redis缓存技术

合集下载

Redis缓存解决访问频繁的数据计算问题

Redis缓存解决访问频繁的数据计算问题

Redis缓存解决访问频繁的数据计算问题随着互联网的快速发展,大数据时代已经来临。

许多应用程序面临着访问频繁的数据计算问题。

在这种情况下,使用缓存技术可以有效提升系统性能。

Redis作为一种高性能的键值存储系统,被广泛应用于解决访问频繁的数据计算问题。

本文将重点讨论如何使用Redis缓存来解决这类问题。

一、Redis缓存的基本原理Redis是一种内存数据库,它将数据存储在内存中,以实现高速的读写性能。

常见的应用场景之一就是将热点数据缓存到Redis中,以减轻数据库的访问压力。

当需要访问数据时,应用程序首先尝试从Redis缓存中获取,如果缓存中有对应的数据,则直接返回给应用程序;如果缓存中没有对应的数据,则从后端数据库中获取,同时将数据存储到Redis缓存中,以供以后使用。

二、Redis缓存的优势1. 高速读写:Redis将数据存储在内存中,避免了磁盘IO的开销,因此具有极快的读写性能。

这对于需要频繁读写的数据计算问题非常重要。

2. 数据持久化:Redis支持数据持久化,可以在服务器重启后将数据恢复到内存中。

这样即便服务器发生故障,也能保证数据的完整性。

3. 支持多种数据结构:Redis支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,使得开发人员可以根据不同的业务场景选择合适的数据结构。

三、Redis缓存的使用方法1. 确定缓存键名:在使用Redis缓存时,需要为每个缓存对象设置唯一的键名。

一般可使用业务相关的ID作为键名,如用户ID、商品ID等。

2. 设置缓存超时时间:在将数据存储到Redis缓存中时,需要设置一个适当的超时时间。

超时时间的设置应根据数据变化的频率和对数据的实时性要求来进行调整。

3. 编写缓存逻辑:在访问数据之前,首先查询Redis缓存,如果缓存中有对应的数据,则直接使用缓存中的数据;如果缓存中没有对应的数据,则从数据库中获取数据,并将数据存储到Redis缓存中。

四、Redis缓存的适用场景1. 热点数据缓存:将访问频繁的热点数据存储到Redis缓存中,可以大大提升系统的性能。

Redis缓存的适用性与替代方案的对比分析

Redis缓存的适用性与替代方案的对比分析

Redis缓存的适用性与替代方案的对比分析随着互联网应用的快速发展,数据访问的性能和效率变得越来越重要。

为了提高系统的响应速度,很多开发者开始使用缓存技术来存储经常使用的数据。

而Redis作为一个高性能的内存缓存系统,被广泛应用于各个领域。

然而,对于某些应用场景,Redis缓存并不一定是最合适的选择,本文将对Redis缓存的适用性以及替代方案进行比较和分析。

一、Redis缓存的适用性1. 高性能:Redis以其快速的读写速度而闻名,尤其在读取大量数据时表现出色。

对于需要频繁读取的应用场景,Redis缓存能够显著提升系统的性能。

2. 内存存储:Redis将数据存储在内存中,相比于传统的磁盘存储,具备更高的读写速度。

这对于对数据访问有较高实时性要求的应用非常重要。

3. 数据结构丰富:Redis支持多种数据结构,包括字符串、哈希、列表、集合和有序集合等。

这些特性使得Redis适用于不同的业务需求,并能够方便地进行数据处理和计算。

二、Redis缓存的替代方案1. Memcached:Memcached是另一个常用的内存缓存系统,与Redis相比,它更加专注于缓存的功能,不支持像Redis那样丰富的数据结构。

然而,Memcached在缓存写操作的性能方面表现更好,适用于对读取性能要求较高的场景。

2. Hazelcast:Hazelcast是一个开源的分布式缓存系统,它提供了分布式数据缓存和计算功能。

相较于Redis,Hazelcast的主要优势在于其在分布式计算方面的支持,适用于需要进行分布式任务处理的场景。

3. Ehcache:Ehcache是一个基于Java的开源缓存框架,它提供了丰富的缓存功能和配置选项。

相较于Redis,Ehcache更适用于单机缓存的应用场景,并且具备更好的与Java应用程序的集成支持。

三、对比分析1. 性能比较:在内存访问速度方面,Redis具备较高的性能,尤其在读取方面更胜一筹。

redis缓存实现原理

redis缓存实现原理

redis缓存实现原理Redis缓存实现原理是基于内存的键值存储系统,具有快速读写操作和持久化功能。

以下是Redis缓存的实现原理:1. 内存存储:Redis将数据存储在内存中,以实现高速读写操作。

内存存储方式使得Redis能够快速地响应请求,并处理大量并发访问。

2. 键值对存储:Redis以键值对的形式存储数据。

每个键都与一个特定的值相关联。

这种存储模型使得Redis能够将数据分组并按需访问。

3. 数据类型:Redis支持多种数据类型,包括字符串、哈希表、列表、集合和有序集合。

不同的数据类型适用于不同的应用场景,提供了灵活性和高效性。

4. 持久化:Redis提供了两种持久化方式,即RDB(Redis数据库)和AOF(Append Only File)。

RDB在指定时间间隔内将内存中的数据快照保存到硬盘上,而AOF则记录了所有对数据的修改操作,通过重放这些操作来恢复数据。

5. 缓存淘汰策略:Redis通过设置缓存的最大内存容量,当达到容量限制时会触发缓存淘汰策略。

常见的淘汰策略包括LRU(最近最少使用)、LFU(最不常使用)和随机替换等。

6. 分布式部署:Redis支持分布式部署,通过在多个节点之间共享数据进行负载均衡和高可用性。

分布式Redis使用一致性哈希算法来确定数据在哪个节点中存储,同时使用复制和故障转移机制来提高可用性。

总之,Redis缓存实现原理基于内存存储、键值对存储和多种数据类型支持。

它通过持久化、缓存淘汰策略和分布式部署等机制实现高速读写、数据可持久化和可扩展性。

Redis缓存的管道技术与批量操作

Redis缓存的管道技术与批量操作

Redis缓存的管道技术与批量操作Redis是一种高性能的内存数据库,常用于缓存、存储会话信息和提供实时数据分析。

为了进一步提高Redis的性能,管道技术和批量操作成为了重要的优化手段。

一、什么是Redis缓存的管道技术Redis缓存的管道技术是指客户端将多个命令一次性发送给Redis服务器,由服务器按顺序执行这些命令,并将结果一次性返回给客户端。

这种方式减少了客户端与服务器之间的网络开销和延迟,从而提高了Redis的性能。

二、Redis缓存的管道技术的使用场景1. 批量写入/更新操作:当需要写入/更新多个键值对时,使用管道技术可以减少客户端与服务器之间的通信次数,提高写入/更新的效率。

2. 批量读取操作:当需要读取多个键值对时,使用管道技术可以将多个读取命令一次性发送给服务器,并一次性获取结果,减少网络开销和延迟。

三、Redis缓存的管道技术的优势1. 减少网络开销和延迟:使用管道技术可以将多个命令一次性发送给服务器,减少了网络往返的时间,提高了整体的响应速度。

2. 提高并发性能:由于管道技术可以一次性执行多个命令,因此在高并发的场景下,可以有效降低服务器的负载,提高系统的并发能力。

3. 简化客户端代码:使用管道技术可以将多个命令封装在一个操作中,简化了客户端操作的复杂度,提高了开发效率。

四、Redis缓存的管道技术的应用案例以下是一个批量写入操作的示例代码:```import redis# 连接Redis服务器r = redis.Redis(host='localhost', port=6379)# 创建管道对象pipe = r.pipeline()# 批量写入操作pipe.set('key1', 'value1')pipe.set('key2', 'value2')pipe.set('key3', 'value3')# 执行管道命令pipe.execute()# 关闭管道pipe.close()```以上代码使用了Redis的Python客户端库`redis`,首先创建了一个连接对象`r`,然后创建了一个管道对象`pipe`,在管道对象中依次添加了要执行的写入命令,最后使用`execute()`方法执行管道命令。

Redis缓存的五大优势你绝对不能忽视

Redis缓存的五大优势你绝对不能忽视

Redis缓存的五大优势你绝对不能忽视Redis是一款高性能的开源内存键值数据库。

由于其快速的读写速度、丰富的数据结构以及优秀的可扩展性,使得它在缓存方案中得到了广泛应用。

本文将介绍Redis缓存的五大优势,以帮助读者更好地理解和应用Redis缓存。

一、高性能的响应速度Redis将数据存储在内存中,相较于传统的磁盘存储,读写速度得到了极大的提升。

它使用了基于内存的数据结构和高效的算法,使得数据库操作能够在微秒级别完成。

这一特性使得Redis在处理高并发场景下表现出色,能够满足大规模系统的实时访问需求。

二、丰富的数据结构支持Redis支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。

这些数据结构的使用灵活多样,可以满足各种业务场景的需求。

例如,哈希表适合存储对象属性,列表适合实现队列和栈的功能,而有序集合则可用于实现排行榜等特殊需求。

通过合理选择和组合不同的数据结构,可以提高数据访问效率,降低内存占用,更好地满足各类应用的性能要求。

三、可靠的持久化机制Redis支持数据持久化,即将内存中的数据写入磁盘,以保证数据的安全性和可靠性。

它提供了两种持久化机制:RDB(Redis DataBase)和AOF(Append Only File)。

RDB是通过将数据快照写入磁盘的方式进行持久化,而AOF则是通过追加写入的方式记录每条数据操作命令,以便在重启时重新执行这些命令来恢复数据。

这两种机制都能够有效地避免数据丢失和数据损坏的问题,保证数据的可靠性。

四、灵活的分布式架构Redis支持主从复制和Sentinel哨兵机制,使得它可以构建起高可用、可伸缩的分布式系统。

主从复制可以将数据从主节点复制到多个从节点上,实现读写分离以及负载均衡。

而Sentinel则负责监控Redis节点的状态,并在主节点失效时选择一个从节点自动升级为主节点,从而实现故障的自动切换和容灾。

这种分布式架构能够提高系统的扩展性和可用性,确保系统能够在高负载和故障情况下正常运行。

Redis缓存的数据压缩与存储优化技术探索

Redis缓存的数据压缩与存储优化技术探索

Redis缓存的数据压缩与存储优化技术探索在现代软件开发中,缓存是一项广泛应用的技术,旨在提高应用程序的性能和响应速度。

Redis是一种常用的缓存解决方案,它具有高性能、灵活性和可靠性的特点。

然而,随着数据量的增长,缓存的存储成本也成为了一个问题。

为了解决这个问题,我们需要探索Redis缓存的数据压缩与存储优化技术。

一、压缩算法的选择在Redis中,数据压缩是通过使用压缩算法来减少存储空间的。

常见的压缩算法有Gzip、Snappy、LZ4等。

选择合适的压缩算法需要综合考虑压缩比率、压缩速度以及解压速度等因素。

在一些场景中,如果数据的压缩和解压速度很重要,可以选用Snappy或LZ4等快速压缩算法。

而在另一些场景中,如果存储空间非常宝贵,可以选择压缩比例更高的算法,如Gzip。

需要根据具体的应用场景和需求来选择合适的压缩算法。

二、压缩级别的调整除了选择合适的压缩算法,我们还可以通过调整压缩级别来平衡压缩比和压缩速度。

一般来说,压缩级别越高,压缩比例就越高,但同时也会增加压缩和解压的时间成本。

在Redis中,常见的压缩级别有1到9。

可以根据实际需求,通过测试和评估来选择合适的压缩级别。

如果对存储空间要求较高,可以选择较高的压缩级别;如果对性能要求较高,可以选择较低的压缩级别。

三、数据类型的选择在Redis中,不同的数据类型对于数据压缩的效果有所差异。

例如,字符串类型的数据通常可以获得较好的压缩效果,而哈希类型和有序集合类型的数据则很难获得较好的压缩效果。

因此,在设计数据模型时,可以根据数据类型的特点来选择合适的压缩方案。

对于可压缩的数据类型,可以采用较为激进的压缩策略;而对于不易压缩的数据类型,则可以考虑采用较为保守的压缩策略或者直接不进行压缩。

四、数据热度的考虑在Redis中,数据的热度对于数据压缩的效果也有较大的影响。

热数据通常是指经常被访问的数据,而冷数据则是指很少被访问的数据。

对于热数据,采用较低的压缩级别可以平衡性能和存储空间;而对于冷数据,可以选择更高的压缩级别来节省存储空间。

rediscache方法

rediscache方法
RedisCache方法是指Redis缓存中的操作方法。

Redis是一个
基于内存的数据存储系统,它提供了一些用于缓存数据的功能,可以将常用的数据存储在内存中,以提高数据读写的速度。

RedisCache方法包括以下几种常见的操作:
1. get(key): 根据给定的key获取缓存中对应的value。

2. set(key, value): 将给定的key和value存储到缓存中,如果
key已经存在,则更新value。

3. delete(key): 删除缓存中指定的key及其对应的value。

4. exists(key): 判断给定的key是否存在于缓存中。

5. expire(key, seconds): 设置给定的key在指定的秒数后过期,
即在缓存中自动删除。

6. flushall(): 清空缓存中的所有数据。

这些方法可以用于对Redis缓存进行常规的读取、写入、删除
等操作。

在实际开发中,需要根据具体的业务需求来选择合适的RedisCache方法来提高数据读写的效率和性能。

同时,需
要注意合理设置缓存的过期时间,以避免缓存数据过期导致读取错误或存储无效数据。

redis缓存原理

redis缓存原理Redis缓存原理Redis是一个开源的内存数据库,被广泛应用于缓存、消息队列、会话存储等场景。

作为一种高性能的键值存储系统,Redis的缓存原理是其核心功能之一,下面我们将深入探讨Redis缓存的原理及其优势。

1. 内存缓存Redis的缓存原理基于内存缓存,将数据存储在内存中,相比传统的磁盘存储,内存存储速度更快,访问效率更高。

当应用程序需要访问数据时,首先会检查Redis中是否存在该数据,如果存在,则直接从内存中读取,避免了频繁访问磁盘的开销,提高了系统的响应速度。

2. 键值存储Redis采用键值对的方式存储数据,每个键对应一个值,通过键来唯一标识数据。

应用程序可以通过键来快速定位并访问数据,提高了数据的检索效率。

此外,Redis还支持多种数据类型,如字符串、列表、哈希、集合等,满足不同类型数据的存储需求。

3. 缓存淘汰策略为了防止内存溢出,Redis采用了多种缓存淘汰策略,如LRU(最近最少使用)、LFU(最少使用频率)、TTL(过期时间)等。

当内存空间不足时,Redis会根据设定的淘汰策略来删除部分数据,释放内存空间。

这些策略有效地保证了系统的稳定性和可用性。

4. 持久化机制除了内存缓存,Redis还支持持久化机制,将数据定期写入磁盘,防止数据丢失。

Redis提供了两种持久化方式,分别是RDB(快照)和AOF(日志),用户可以根据需求选择适合的持久化方式。

持久化机制保证了数据的安全性和可靠性。

5. 高可用性Redis支持主从复制和Sentinel哨兵机制,保证了高可用性和容错性。

通过主从复制,可以实现数据的备份和负载均衡,提高了系统的稳定性。

Sentinel哨兵监控系统状态,当主节点故障时自动切换到备用节点,保证了系统的连续性。

总结:Redis缓存原理基于内存存储、键值存储、缓存淘汰策略、持久化机制和高可用性等特点,在实际应用中发挥了重要作用。

通过合理配置和优化,可以提高系统的性能和稳定性,满足不同场景下的数据存储需求。

redis的缓存机制

redis的缓存机制Redis是一个高效的内存缓存数据库,经常被用来作为分布式缓存系统。

在这个系统中,Redis具有良好的性能、可靠性和可扩展性,不仅能够减少数据库的负载,还能够缩短网络访问时间,提高应用程序的响应速度。

Redis的缓存机制是其核心特性之一,它采用内存存储方式,能够快速读取和写入数据,从而减少了I/O开销,提高了数据的访问速度。

下面,我们将分步骤详细介绍Redis的缓存机制。

一、Redis的内存存储Redis采用的是内存存储的方式,将数据存储在内存中,而不是在硬盘上。

这种存储方式保证了读取和写入速度的极致,因为内存的访问速度比硬盘快得多。

二、Redis的键值存储Redis采用的是键值存储的方式,就是把数据视为键值对。

这种存储方式类似于字典,可以根据键快速地查找数据。

这种存储方式非常适合缓存数据,因为我们经常需要快速地查找缓存数据,而不是遍历整个数据集。

三、Redis的数据过期Redis的缓存机制采用了数据过期的策略。

我们可以为缓存中的每个数据设置过期时间,过期时间到达时,数据会自动从内存中删除。

这种策略保证了缓存的及时性和有效性。

Redis的过期策略有两种:1. 设置固定过期时间,即在缓存中添加数据时,以秒为单位设置数据的有效时间。

在指定时间后,数据会自动从内存中删除。

2. 设置自适应过期时间,即根据数据的访问频率,决定数据在缓存中的过期时间。

如果数据长时间没有被访问,那么它的过期时间会减少,反之亦然。

四、Redis的缓存穿透Redis的缓存机制还解决了缓存穿透的问题。

缓存穿透是指在访问缓存数据时,请求的数据不存在于缓存中,但是会反复请求这个不存在的数据,导致服务器数据负载过高。

Redis通过使用布隆过滤器技术,可以判断请求的数据是否存在于缓存中,如果不存在,就不会向数据库请求这个数据。

五、Redis的缓存击穿Redis的缓存机制还解决了缓存击穿的问题。

缓存击穿是指在高并发场景下,某个数据的缓存同时失效,在数据重新被缓存之前,大量的请求都与数据库连接,导致数据库压力过大。

rediscache 用法

rediscache 用法Redis 是一个高性能的内存数据库,提供了丰富的数据结构和功能。

其中的Redis Cache 是Redis 的一个重要功能,可以用于缓存数据,提升系统性能和响应速度。

下面我将详细介绍Redis Cache 的用法。

一、Redis Cache 的基本概念1. 缓存:将计算过的结果存储在高速存储设备中,以便后续使用,减少计算和查询的时间消耗。

2. 缓存击穿:当缓存中某个键对应的数据过期或者不存在时,大量的并发请求会直接冲击到数据库上,导致数据库压力骤增,甚至崩溃。

3. 缓存雪崩:缓存中大量的键同时过期,导致大量的并发请求都直接冲击到数据库上,导致数据库压力骤增,甚至崩溃。

4. 缓存一致性:指缓存中的数据与数据库中的数据保持一致,保证数据的正确性。

5. 缓存更新策略:指缓存中的数据何时进行更新,通过设置合适的更新策略,可以减少数据库压力,提高系统性能。

二、Redis Cache 的优势1. 高性能:Redis Cache 是基于内存的缓存技术,速度非常快,能够提供高并发的读写能力。

2. 丰富的数据结构:Redis 提供了多种数据结构,如字符串、哈希表、列表、集合、有序集合等,能够满足不同场景下的需求。

3. 持久化支持:Redis 提供了两种持久化方式,即快照和AOF日志,可以将缓存数据持久化到磁盘,避免数据丢失。

4. 高可用性:Redis 支持主从复制和哨兵机制,可以实现缓存的高可用性和故障恢复。

5. 多种应用场景:Redis 除了作为缓存使用外,还可以用作消息队列、分布式锁等,具有广泛的应用场景。

三、Redis Cache 的使用1. 安装和配置Redis:首先需要安装Redis,并进行相关的配置,如绑定IP地址、端口号、密码等。

可以通过官方网站下载安装包,然后按照文档进行配置。

2. 连接Redis:通过Redis 客户端连接Redis 服务器,在代码中指定Redis 的IP地址、端口号和密码,即可建立连接。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、Redis 介绍二、Redis 性能介绍三、Redis 功能四、Redis 安装及配置五、Redis 启动六、Redis 的数据类型七、Redis 的master/slave 配置声明:本文档仅供学习参考之用,如有错误和其他观点,请访问 或Email 本人Redis 介绍Redis 本质上一个Key/Value 数据库,与Memcached 类似的NoSQL 型数据库,但是他的数据可以持久化的保存在磁盘上,解决了服务重启后数据不丢失的问题,他的值可以是string(字符串)、list(列表)、sets(集合)或者是ordered sets(被排序的集合),所有的数据类型都具有push/pop、add/remove、执行服务端的并集、交集、两个sets 集中的差别等等操作,这些操作都是具有原子性的,Redis 还支持各种不同的排序能力Redis 2.0 更是增加了很多新特性,如:提升了性能、增加了新的数据类型、更少的利用内存(AOF 和VM)Redis 支持绝大部分主流的开发语言,如:C、Java、C#、PHP、Perl、Python、Lua、Erlang、Ruby 等等Redis 性能:根据Redis 官方的测试结果:在50 个并发的情况下请求10w 次,写的速度是110000 次/s,读的速度是81000 次/s测试环境:1. 50 个并发,请求100000 次2. 读和写大小为256bytes 的字符串3. Linux2.6 Xeon X3320 2.5GHz 的服务器上IT 运维专家网4. 通过本机的loopback interface 接口上执行地址:/p/redis/wiki/BenchmarksRedis 的功能:1、Redis 的Sharding:Redis 支持客户端的Sharding 功能,通过一致性hash 算法实现,当前Redis 不支持故障冗余,在集群中不能在线增加或删除Redis2、Redis 的master/slave 复制:1. 一个master 支持多个slave2. Slave 可以接受其他slave 的连接来替代他连接master3. 复制在master 是非阻塞的,而在slave 是阻塞的4. 复制被利用来提供可扩展性,在slave 端只提供查询功能及数据的冗余3、Redis 的Virtual Memory 功能:vm 是Redis2.0 新增的一个非常稳定和可靠的功能,vm 的引入是为了提高Redis 的性能,也就是把很少使用的value 保存到disk,而key 保存在内存中。

实际上就是如果你有10w 的keys 在内存中,而只有仅仅10%左右的key 经常使用,那么Redis 可以通过开启VM 尝试将不经常使用的Value 转换到disk 上保存4、Redis 的附加档案(AOF)功能:Redis 通过配置的策略将数据集保存到aof 中,当Redis 挂掉后能够通过aof 恢复到挂掉前的状态Redis 的安装及配置:下载Redis:wget /files/redis-2.0.0-rc4.tar.gz[falcon@ ~/src]$ tar xvzf redis-2.0.0-rc4.tar.gz[falcon@ ~/src]$ cd redis-2.0.0-rc4[falcon@ ~/src/redis-2.0.0-rc4]$ make[falcon@ ~/src/redis-2.0.0-rc4]$ mkdir ~/redis-2.0.0[falcon@ ~/src/redis-2.0.0-rc4]$cp redis-server ~/redis-2.0.0[falcon@ ~/src/redis-2.0.0-rc4]$cp redis-benchmark ~/redis-2.0.0[falcon@ ~/src/redis-2.0.0-rc4]$cp redis-cli ~/redis-2.0.0[falcon@ ~/src/redis-2.0.0-rc4]$cp redis.conf ~/redis-2.0.0[falcon@ ~/src/redis-2.0.0-rc4]$ cd ~/redis-2.0.0/配置redis.conf 配置文件:#是否作为守护进程运行daemonize yes#配置pid 的存放路径及文件名,默认为当前路径下pidfile redis.pid#Redis 默认监听端口port 6379#客户端闲置多少秒后,断开连接timeout 300#日志显示级别loglevel verbose IT 运维专家网#指定日志输出的文件名,也可指定到标准输出端口logfile stdout#设置数据库的数量,默认连接的数据库是0,可以通过select N 来连接不同的数据库databases 16#保存数据到disk 的策略#当有一条Keys 数据被改变是,900 秒刷新到disk 一次save 900 1#当有10 条Keys 数据被改变时,300 秒刷新到disk 一次save 300 10#当有1w 条keys 数据被改变时,60 秒刷新到disk 一次save 60 10000#当dump .rdb 数据库的时候是否压缩数据对象rdbcompression yes#dump 数据库的数据保存的文件名dbfilename dump.rdb#Redis 的工作目录dir /home/falcon/redis-2.0.0/########### Replication ######################Redis 的复制配置# slaveof <masterip> <masterport># masterauth <master-password>############## SECURITY ############ requirepass foobared############### LIMITS ###############最大客户端连接数# maxclients 128#最大内存使用率# maxmemory <bytes>########## APPEND ONLY MODE ##########是否开启日志功能appendonly no# 刷新日志到disk 的规则# appendfsync alwaysappendfsync everysec# appendfsync no################ VIRTUAL MEMORY ############是否开启VM 功能vm-enabled no# vm-enabled yesvm-swap-file logs/redis.swapvm-max-memory 0 IT 运维专家网 vm-page-size 32vm-pages 134217728vm-max-threads 4############# ADV ANCED CONFIG ############### glueoutputbuf yeshash-max-zipmap-entries 64hash-max-zipmap-value 512#是否重置Hash 表activerehashing yes启动Redis[falcon@ ~/redis-2.0.0]$ ./redis-server redis.conf检测Redis 是否启动:[falcon@ ~/redis-2.0.0]$ netstat -an -tActive Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp 0 0 0.0.0.0:10022 0.0.0.0:* LISTENtcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN……..[falcon@ ~/redis-2.0.0]$ ps -ef|grep redis-serverfalcon 7663 1 0 02:29 ? 00:00:00 ./redis-server redis.confRedis 的数据类型:[falcon@ ~/redis-2.0.0]$ ./redis-cli -husage: redis-cli [-h host] [-p port] [-a authpw] [-r repeat_times] [-n db_num] [-i] cmd arg1 arg2 arg3 ... argNusage: echo "argN" | redis-cli -c [-h host] [-p port] [-a authpw] [-r repeat_times] [-n db_num] cmd arg1 arg2 ... arg(N-1)Redis 根据5 种不同的数据类型来操作数据对象:操作String 类型的值:Command Parameters DescriptionSET key value Set a key to a string valueGET key Return the string value of the keyGETSET key value Set a key to a string returning the old value of thekeyMGET key1 key2 ... keyN Multi-get, return the strings values of the keysSETNX key value Set a key to a string value if the key does not existSETEX key time value Set+Expire combo command IT 运维专家网 MSET key1 value1 key2 value2 ... keyN valueN Set multiple keys to multiplevalues in a single atomic operationMSETNX key1 value1 key2 value2 ... keyN valueN Set multiple keys to multiplevalues in a single atomic operation if none of the keys already existINCR key Increment the integer value of keyINCRBY key integer Increment the integer value of key by integerDECR key Decrement the integer value of keyDECRBY key integer Decrement the integer value of key by integerAPPEND key value Append the specified string to the string stored atkeySUBSTR key start end Return a substring of a larger string操作方法:SET 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli -n 0 set uid_001 Falcon.COK[falcon@ ~/redis-2.0.0]$ ./redis-cli -n 0 set uid_002 FalconOK表示向数据库0 中插入字符串key 为uid_001,value 为Falcon.C 的字符串GET 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli -n 0 get uid_001"Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli get uid_001"Falcon.C"表示获取数据库为0,key 为uid_001 的字符串,因为在不指定数据编号的情况下,默认连接的是0 数据库,所以可以省略-n 参数GETSET 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli getset uid_002 "falcom520@" "Falcon"[falcon@ ~/redis-2.0.0]$ ./redis-cli get uid_002falcom520@表示返回指定key 的原始值,并指定一个新值给他MGET 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli mget uid_001 uid_0021. "Falcon.C"2. "falcom520@"表示获取多个key 的值SETNX 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli setnx uid_001_email "falcom520@" IT 运维专家网(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli get uid_001_email"falcom520@"[falcon@ ~/redis-2.0.0]$ ./redis-cli setnx uid_001_email "falcom520@" (integer) 0表示当一个指定的key 不存在时,设置这个key 指定的value,如果存在,则设置不成功SETEX 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli setex uid_001_msn 5 "falcom520@" OK[falcon@ ~/redis-2.0.0]$ ./redis-cli get uid_001_msn"falcom520@"[falcon@ ~/redis-2.0.0]$ ./redis-cli get uid_001_msn(nil)表示设置一个key 指定的value 保存 5 秒后失效,设置key/value 的有效期MSET 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli mset uid0001 "0001" uid0002 "0002"uid0003 "0003"OK[falcon@ ~/redis-2.0.0]$ ./redis-cli mget uid0001 uid0002 uid00031. "0001"2. "0002"3. "0003"表示多键值对的数据保存,在保证原子操作性的情况下MSETNX 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli msetnx uid0003 "0003" uid0004 "0004"uid0005 "0005"(integer) 0[falcon@ ~/redis-2.0.0]$ ./redis-cli msetnx uid0004 "0004" uid0005 "0005" (integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli mget uid0001 uid0002 uid0003 uid0004uid00051. "0001"2. "0002"3. "0003"4. "0004"5. "0005"表示在单原子操作性的情况下,keys 不存在的前提下插入多个values 值,如果存在其中一个keys 则插入失败INCR 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli incr uid IT 运维专家网(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli incr uid(integer) 2[falcon@ ~/redis-2.0.0]$ ./redis-cli incr uid(integer) 3表示对给定key 的value 进行递增的操作INCRBY 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli incrby uid 5 (integer) 8[falcon@ ~/redis-2.0.0]$ ./redis-cli incrby uid 5 (integer) 13表示对给定key 的value 进行指定步长的递增操作DECR 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli decr uid(integer) 12[falcon@ ~/redis-2.0.0]$ ./redis-cli decr uid(integer) 11表示对给定的key 的value 进行递减操作DECRBY 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli decrby uid 3 (integer) 8[falcon@ ~/redis-2.0.0]$ ./redis-cli decrby uid 3 (integer) 5表示对给定key 的value 做指定步长的递减操作APPEND 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli append content "01234" (integer) 5[falcon@ ~/redis-2.0.0]$ ./redis-cli get content "01234"[falcon@ ~/redis-2.0.0]$ ./redis-cli append content "56789" (integer) 10[falcon@ ~/redis-2.0.0]$ ./redis-cli get content "0123456789"表示追加一个value 到指定的key 中,如果key 不存在,则新建keySUBSTR 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli substr content 0 4 "01234"[falcon@ ~/redis-2.0.0]$ ./redis-cli substr content 5 10 "56789" IT 运维专家网表示返回指定key 的value 的部分字符串操作lists 类型的值:(列表)Command Parameters DescriptionRPUSH key value Append an element to the tail of the List value at keyLPUSH key value Append an element to the head of the List value at keyLLEN key Return the length of the List value at keyLRANGE key start end Return a range of elements from the List at keyLTRIM key start end Trim the list at key to the specified range of elementsLINDEX key index Return the element at index position from the List at keyLSET key index value Set a new value as the element at index position of theList at keyLREM key count value Remove the first-N, last-N, or all the elements matchingvalue from the List at keyLPOP key Return and remove (atomically) the first element of theList at keyRPOP key Return and remove (atomically) the last element of theList at keyBLPOP key1 key2 ... keyN timeout Blocking LPOPBRPOP key1 key2 ... keyN timeout Blocking RPOPRPOPLPUSH srckey dstkey Return and remove (atomically) the last element of thesource List stored at srckey and push the same element to the destination List stored at dstkeyRPUSH 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli rpush list_001 0000001(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli rpush list_001 0000002(integer) 2[falcon@ ~/redis-2.0.0]$ ./redis-cli rpush list_001 0000003(integer) 3[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 31. "0000001"2. "0000002"3. "0000003"表示向指定key 的list 的后面(右边)追加指定的valueLPUSH 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli lpush list_001 000099(integer) 4[falcon@ ~/redis-2.0.0]$ ./redis-cli lpush list_001 000098(integer) 5[falcon@ ~/redis-2.0.0]$ ./redis-cli lpush list_001 000097(integer) 6 IT 运维专家网[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 81. "000097"2. "000098"3. "000099"4. "0000001"5. "0000002"6. "0000003"表示向指定key 的list 的前面(左边)追加指定的valueLLEN 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli llen list_001 (integer) 6表示返回指定key list 的长度LRANGE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 2 41. "000099"2. "0000001"3. "0000002"表示返回指定key list 里面的位置的范围valueLTRIM 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli ltrim list_001 0 2OK[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 41. "000097"2. "000098"3. "000099"表示删除指定key 的值范围以外的数据LINDEX 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "000097"2. "000098"3. "000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli lindex list_001 2 "000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli lindex list_001 1 "000098"表示返回指定key list 里面索引的值LSET 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "000097" IT 运维专家网2. "000098"3. "000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli lset list_001 0 "100097"OK[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "100097"2. "000098"3. "000099"表示给指定key 的list 里面指定索引的值修改为一个新值LREM 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli lpush list_001 000099 (integer) 4[falcon@ ~/redis-2.0.0]$ ./redis-cli lpush list_001 000099 (integer) 5[falcon@ ~/redis-2.0.0]$ ./redis-cli lpush list_001 000099 (integer) 6[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "000099"2. "000099"3. "000099"4. "100097"5. "000098"6. "000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli lrem list_001 2 000099 (integer) 2[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "000099"2. "100097"3. "000098"4. "000099"表示删除指定key 的list 里面值为value 的指定个数LPOP 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "000099"2. "100097"3. "000098"4. "000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli lpop list_001 "000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "100097"2. "000098" IT 运维专家网3. "000099"表示删除指定key 的list 里面最前面(左边)的值,并返回该值RPOP 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "100097"2. "000098"3. "000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli rpop list_001"000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "100097"2. "000098"表示删除指定key 的list 里面最后面(右边)的值,并返回该值BLPOP 和BRPOP 操作在阻塞的模式下执行LPOP 和RPOP 操作RPOPLPUSH 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "100097"2. "000098"[falcon@ ~/redis-2.0.0]$ ./redis-cli rpoplpush list_001 list_999"000098"[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_001 0 91. "100097"[falcon@ ~/redis-2.0.0]$ ./redis-cli lrange list_999 0 61. "000098"表示将原key 的list 后面(右边)的值删掉,并保存到指定的目的key 中,并返回该值操作sets 类型的值:(sets 集合)Command Parameters DescriptionSADD key member Add the specified member to the Set value at keySREM key member Remove the specified member from the Set value at keySPOP key Remove and return (pop) a random element from the Setvalue at keySMOVE srckey dstkey member Move the specified member from one Set to anotheratomicallySCARD key Return the number of elements (the cardinality) of the Set atkeySISMEMBER key member Test if the specified value is a member of the Set at keySINTER key1 key2 ... keyN Return the intersection between the Sets stored at key1,key2, ..., keyN IT 运维专家网SINTERSTORE dstkey key1 key2 ... keyN Compute the intersection between the Sets stored at key1,key2, ..., keyN, and store the resulting Set at dstkeySUNION key1 key2 ... keyN Return the union between the Sets stored at key1, key2, ...,keyNSUNIONSTORE dstkey key1 key2 ... keyN Compute the union between the Sets stored atkey1, key2, ..., keyN, and store the resulting Set at dstkeySDIFF key1 key2 ... keyN Return the difference between the Set stored at key1 and allthe Sets key2, ..., keyNSDIFFSTORE dstkey key1 key2 ... keyN Compute the difference between the Set key1and all the Sets key2, ..., keyN, and store the resulting Set atdstkeySMEMBERS key Return all the members of the Set value at keySRANDMEMBER key Return a random member of the Set value at keySADD 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 "Falcon.C"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 "Falcon"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon"2. "Falcon.C"表示向指定key 的集合中添加成员SREM 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon"2. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli srem s_001 Falcon(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon.C"表示删除指定key 的指定Value 成员值SPOP 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 "" (integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 ""(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 "" IT 运维专家网(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. ""2. "Falcon.C"3. ""4. ""[falcon@ ~/redis-2.0.0]$ ./redis-cli spop s_001""[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon.C"2. ""3. ""表示从指定key 的set 集中随机删除一个成员value 并返回SMOVE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon.C"2. ""[falcon@ ~/redis-2.0.0]$ ./redis-cli smove s_001 s_002 (integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0021. ""表示从一个指定的key 中移动一个指定的value 成员到另一个指定的key 中,这些操作是具有原子性的SCARD 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli scard s_001(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli scard s_002(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon.C"表示返回指定key 的set 集的value 成员个数SISMEMBER 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli sismember s_001 Falcon(integer) 0[falcon@ ~/redis-2.0.0]$ ./redis-cli sismember s_001 Falcon.C(integer) 1表示判断指定的key 的成员是否存在于sets 集中IT 运维专家网SINTER 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 "000001"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 "000002"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "Falcon.C"2. "000001"3. "000002"[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0021. ""[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_002 "000001"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_002 "000002"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0021. "000001"2. ""3. "000002"[falcon@ ~/redis-2.0.0]$ ./redis-cli sinter s_001 s_0021. "000001"2. "000002"表示对指定的key 的sets 集执行交集操作,返回指定sets 集合中相同的value 成员SINTERSTORE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 "000003"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_001 "00000099"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "000003"2. "Falcon.C"3. "000001"4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_002 "000003"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli sadd s_002 "00000099"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0021. "000003"2. "000001"3. "" IT 运维专家网4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0021. "000003"2. "000001"3. ""4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli sinterstore s_003 s_001 s_002 (integer) 4[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0031. "000003"2. "000001"3. "00000099"4. "000002"表示将指定的key 的sets 集做交集,并将结果保存到指定的key 中SUNION 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "000003"2. "Falcon.C"3. "000001"4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0021. "000003"2. ""3. "000001"4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli sunion s_001 s_0021. "000003"2. "Falcon.C"3. "000001"4. ""5. "000002"6. "00000099"表示对指定的key 的sets 集合做并集SUNIONSTORE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "000003"2. "Falcon.C"3. "000001" IT 运维专家网4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0021. "000003"2. ""3. "000001"4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli sunionstore s_004 s_001 s_002(integer) 6[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0041. "000003"2. "Falcon.C"3. "000001"4. ""5. "000002"6. "00000099"表示对指定的key 的sets 集做并集,并将结果保存到指定的key 中SDIFF 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0011. "000003"2. "Falcon.C"3. "000001"4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0021. "000003"2. ""3. "000001"4. "000002"5. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli sdiff s_001 s_002 s_003 s_004(empty list or set)[falcon@ ~/redis-2.0.0]$ ./redis-cli sdiff s_001 s_0021. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli sdiff s_001 s_0031. "Falcon.C"表示对给定的第一个key 的sets 集合与其他的key 的sets 集合的value 进行对比,并返回不同的value 的成员SDIFFSTORE 操作Sdiffstore 与sdiff 操作一样,只是把不同的sets 集合成员保存到一个给定的key 的sets 集合IT 运维专家网中SMEMBERS 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0041. "000003"2. "Falcon.C"3. "000001"4. ""5. "000002"6. "00000099"[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0031. "000003"2. "000001"3. "00000099"4. "000002"表示返回指定key 的所有sets 集合的成员SRANDMEMBER 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli smembers s_0031. "000003"2. "000001"3. "00000099"4. "000002"[falcon@ ~/redis-2.0.0]$ ./redis-cli srandmember s_003"000001"[falcon@ ~/redis-2.0.0]$ ./redis-cli srandmember s_003"000002"[falcon@ ~/redis-2.0.0]$ ./redis-cli srandmember s_003"000002"表示返回一个给定key 的sets 集合中随机的一个成员操作zsets 类型的值:(排序后的sets 集合)Command Parameters DescriptionZADD key score member Add the specified member to the Sorted Set value at keyor update the score if it already existZREM key member Remove the specified member from the Sorted Set valueat keyZINCRBY key increment member If the member already exists increment its score by increment, otherwise add the member setting incrementas scoreZRANK key member Return the rank (or index) or member in the sorted set atkey, with scores being ordered from low to high IT 运维专家网 ZREVRANK key member Return the rank (or index) or member in the sorted set atkey, with scores being ordered from high to lowZRANGE key start end Return a range of elements from the sorted set at keyZREVRANGE key start end Return a range of elements from the sorted set at key,exactly like ZRANGE, but the sorted set is ordered intraversed in reverse order, from the greatest to thesmallest scoreZRANGEBYSCORE key min max Return all the elements with score >= min and score <=max (a range query) from the sorted setZCOUNT key min max Return the number of elements with score >= min andscore <= max in the sorted setZCARD key Return the cardinality (number of elements) of the sortedset at keyZSCORE key element Return the score associated with the specified element ofthe sorted set at keyZREMRANGEBYRANK key min max Remove all the elements with rank >= min and rank <= max from the sorted setZREMRANGEBYSCORE key min max Remove all the elements with score >= min and score <= max from the sorted setZUNIONSTORE / ZINTERSTORE dstkey N key1 ... keyN WEIGHTS w1 ... wN AGGREGA TE SUM|MIN|MAX Perform a union or intersection over a number of sorted sets with optional weight and aggregateZADD 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zadd z_001 1 "Falcon.C"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli zadd z_001 1 "Falcon"(integer) 0[falcon@ ~/redis-2.0.0]$ ./redis-cli zadd z_001 1 "LinuxTone"(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 41. "Falcon"2. "Falcon.C"3. "LinuxTone"表示通过给定的积分顺序插入成员值到指定的key 的顺序sets 集合中,如果成员存在则插入失败ZREM 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 41. "Falcon"2. "Falcon.C"3. "LinuxTone"[falcon@ ~/redis-2.0.0]$ ./redis-cli zrem z_001 Falcon(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 4 IT 运维专家网1. "Falcon.C"2. "LinuxTone"表示从给定的key 的顺序sets 集合中删除指定的成员ZINCRBY 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 41. "Falcon.C"2. "LinuxTone"[falcon@ ~/redis-2.0.0]$ ./redis-cli zincrby z_001 2 Falcon.C"3"[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 81. "LinuxTone"2. "Falcon.C"表示给指定的key 的成员的排序积分进行给定的递增值的递增,如果积分为零,则将递增值作为积分排序ZRANK 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 81. "LinuxTone"2. "0"3. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli zrank z_001 Falcon.C(integer) 2表示获取当前指定key 的成员在排序sets 集合中的排名,从0 开始计数(正序)ZREVRANK 操作与ZRANK 一样,从0 开始计数(倒序)ZRANGE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 81. "LinuxTone"2. "0"3. "Falcon.C"表示通过开始值和结束值来获取指定key 的排序sets 集合中的成员范围ZREVRANGE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 21. "LinuxTone"2. "0"3. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 11. "LinuxTone"2. "0"[falcon@ ~/redis-2.0.0]$ ./redis-cli zrevrange z_001 0 1 IT 运维专家网1. "Falcon.C"2. "0"表示通过对指定key 的排序sets 集合倒序后在获取指定范围的成员集ZRANGEBYSCORE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zadd z_001 1 ""(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli zadd z_001 2 ""(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli zadd z_001 3 ""(integer) 1[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 101. ""2. "LinuxTone"3. ""4. ""5. "0"6. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli zrangebyscore z_001 2 41. "LinuxTone"2. ""3. ""表示获取指定key 的积分范围的排序sets 集合的成员ZCOUNT 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 101. ""2. "LinuxTone"3. ""4. ""5. "0"6. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli zcount z_001 2 4(integer) 3表示获取指定key 的积分范围的排序sets 集合的成员数量ZCARD 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 101. ""2. "LinuxTone"3. ""4. ""5. "0"6. "Falcon.C" IT 运维专家网[falcon@ ~/redis-2.0.0]$ ./redis-cli zcard z_001(integer) 6表示获取指定key 的排序sets 集合的成员基数ZSCORE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 101. ""2. "LinuxTone"3. ""4. ""5. "0"6. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli zscore z_001 0"5"[falcon@ ~/redis-2.0.0]$ ./redis-cli zscore z_001 "2"表示获取指定key 的排序sets 集合中成员的积分ZREMRANGEBYRANK 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 101. ""2. "LinuxTone"3. ""4. ""5. "0"6. "Falcon.C"[falcon@ ~/redis-2.0.0]$ ./redis-cli zremrangebyrank z_001 4 5(integer) 2[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 101. ""2. "LinuxTone"3. ""4. ""表示删除指定key 的排序sets 集合中成员的排名范围的成员(通过排名范围删除成员)ZREMRANGEBYSCORE 操作[falcon@ ~/redis-2.0.0]$ ./redis-cli zrange z_001 0 10。

相关文档
最新文档