String字符串
Redis 字符串是字节序列。Redis 字符串是二进制安全的,意味着他们有一个已知的长度没有任何特殊字符终止,所以可以存储任何东西,512 M为上限,主要的还是操作键值对。String的数据结构是简单的Key-Value模型,Value可以是字符串,也可以是数字
set key value
普通添加
# 添加key=name value=wangpengliang127.0.0.1:6379> set name wangpengliangOK127.0.0.1:6379> get name"wangpengliang"127.0.0.1:6379>
setex key seconds value
添加时设置过期时间
# 添加key=name value=wangpengliang 设置30秒后过期127.0.0.1:6379> setex name 30 wangpengliangOK127.0.0.1:6379> get name"wangpengliang"
ttl
检查key还有多少秒过期
127.0.0.1:6379> setex name 30 wangpengliangOK127.0.0.1:6379> get name"wangpengliang"# 查看距离过期时间还有多少秒127.0.0.1:6379> ttl name(integer) 18127.0.0.1:6379>
setnx key value
如果key不存在,则创建一个key,如果key存在,则创建失败并返回0;setnx在分布式锁中经常使用到
# 设置key=name value=wangpengliang127.0.0.1:6379> set name wangpengliangOK# 检查是否设置成功127.0.0.1:6379> get name"wangpengliang"# 使用setnx设置key=name:因为已存在所以创建失败返回0127.0.0.1:6379> setnx name wangpengliang(integer) 0# 清空数据库127.0.0.1:6379> FLUSHDBOK# 重新使用setnx设置key=name:返回1说明创建成功127.0.0.1:6379> setnx name wangpengliang(integer) 1# 检查是否设置成功127.0.0.1:6379> get name"wangpengliang"
get key
获取指定key的value
127.0.0.1:6379> set name wangpengliangOK127.0.0.1:6379> get name"wangpengliang"
mset/mget
用于同时设置/获取一个或多个键值对,批量操作;同时设置多个值,如果其中有一个存在,那么就都创建失败;要么一起成功,要么一起失败,这是一个原子性操作
# 使用mset同时设置多个k-v127.0.0.1:6379> mset name1 wangpengliang name2 lizimeng name3 shijiangtaoOK# 使用met同时读取多个k-v127.0.0.1:6379> mget name1 name2 name31) "wangpengliang"2) "lizimeng"3) "shijiangtao"
incr
让当前键值以 1 的数量递增,并返回递增后的值。相当于C#中的i++
# 设置key=num value=10127.0.0.1:6379> set num 10OK127.0.0.1:6379> get num"10"# 设置key=num value=value+1127.0.0.1:6379> incr num(integer) 11
incrby
可以指定参数一次增加的数值,并返回递增后的值;设置步长的方式递增
# 设置key=num value=10127.0.0.1:6379> set num 10OK127.0.0.1:6379> get num"10"# 设置key=num value=value+2(2是步长)127.0.0.1:6379> incrby num 2(integer) 12
decr
让当前键值以 1 的数量递减,并返回递减后的值。相当于C#中的i—
# 设置key=num value=10127.0.0.1:6379> set num 10OK127.0.0.1:6379> get num"10"# 设置key=num value=value-1127.0.0.1:6379> decr num(integer) 9
decrby
可以指定参数一次减少的数值,并返回递减后的值;设置步长的方式递减
# 设置key=num value=10OK127.0.0.1:6379> get num"10"# 设置key=num value=value-2(2是步长)127.0.0.1:6379> incrby num 2(integer) 8
append
向键值的末尾追加 value。如果键不存在则将该键的值设置为 value。返回值是追加后字符串的总长度
127.0.0.1:6379> append name wang(integer) 4127.0.0.1:6379> get name"wang"
127.0.0.1:6379> set name wangOK127.0.0.1:6379> get name"wang"127.0.0.1:6379> append name pengliang(integer) 13127.0.0.1:6379> get name"wangpengliang"
strlen
获取字符串长度
127.0.0.1:6379> set name wangpengliangOK127.0.0.1:6379> strlen name(integer) 13
getrange
截取指定索引的字符串,相当于Substring
127.0.0.1:6379> set name wangpengliangOK127.0.0.1:6379> get name"wangpengliang"127.0.0.1:6379> getrange name 0 3"wang"
setrange
从指定索引开始替换字符串
127.0.0.1:6379> set name helloOK127.0.0.1:6379> get name"hello"127.0.0.1:6379> setrange name 0 world(integer) 5127.0.0.1:6379> get name"world"
127.0.0.1:6379> set name "hello java"OK127.0.0.1:6379> get name"hello java"127.0.0.1:6379> setrange name 6 "csharp"(integer) 12127.0.0.1:6379> get name"hello csharp"
127.0.0.1:6379> set name "hello csharp"OK127.0.0.1:6379> get name"hello csharp"127.0.0.1:6379> setrange name 6 "java"(integer) 12127.0.0.1:6379> get name"hello javarp"
注意:命令会确保字符串足够长以便将
value设置在指定的偏移量上,如果给定key原来储存的字符串长度比偏移量小(比如字符串只有5个字符长,但你设置的offset是10),那么原字符和偏移量之间的空白将用零字节(zerobytes,"\x00")来填充
del
根据key删除一个或者多个元素
127.0.0.1:6379> set name wangpengliangOK127.0.0.1:6379> get name"wangpengliang"127.0.0.1:6379> del name(integer) 1127.0.0.1:6379> get name(nil)
127.0.0.1:6379> mset k1 wangpengliang k2 lizimengOK127.0.0.1:6379> mget k1 k21) "wangpengliang"2) "lizimeng"127.0.0.1:6379> del k1 k2(integer) 2127.0.0.1:6379> mget k1 k21) (nil)2) (nil)
对象方式设置
设置一个user:1对象,值为Json字符串来保存一个对象;
set user:1 {name:zhangsan,age:3}
# 设置key=num value=10127.0.0.1:6379> set num 10OK127.0.0.1:6379> get num"10"# 设置key=num value=value-1127.0.0.1:6379> decr num(integer) 9
127.0.0.1:6379> mset user:1:name wangpengliang user:1:age 25OK127.0.0.1:6379> mget user:1:name user:1:age1) "wangpengliang"2) "25"
getset
先get然后再set 如果设置的键不存在值,则设置值,并且返回nil
如果设置的键存在值,则返回该值,并设置新的值
127.0.0.1:6379> getset name wangpengliang(nil)127.0.0.1:6379> get name"wangpengliang"127.0.0.1:6379> getset name lizimeng"wangpengliang"127.0.0.1:63
应用场景
- 计数器—点赞,视频播放量,每播放一次就+1
- 统计多单位的数量
- 粉丝数
- 对象缓存存储
Hash散列表

Redis 的哈希是键值对的集合。Redis 的哈希值是字符串字段和字符串值之间的映射,因此它们被用来表示对象,还有用户信息之类的,经常变动的信息
hset
存储一个哈希键值对的集合。格式:
hset key field value
127.0.0.1:6379> hset user name wangpengliang age 25(integer) 2127.0.0.1:6379> hget user name"wangpengliang"127.0.0.1:6379> hget user age"25"
hget
获取一个哈希键的值。格式:
hget key field
127.0.0.1:6379> hset user name wangpengliang age 25(integer) 2127.0.0.1:6379> hget user name"wangpengliang"
hmset
存储一个或多个哈希是键值对的集合。格式:
hmset key field1 value1 …fieldN keyN
127.0.0.1:6379> hmset user1 name wangpengliang age 25 address beijingOK127.0.0.1:6379> hmget user1 name age address1) "wangpengliang"2) "25"3) "beijing"
hmget
获取多个指定的键的值。格式:
hmget key field1 … fieldN
127.0.0.1:6379> hset user name wangpengliang age 25(integer) 2127.0.0.1:6379> hget user name"wangpengliang"
hexists
判断哈希表中的字段名是否存在 如果存在返回 1 否则返回 0。格式:
hexists key field
127.0.0.1:6379> hmset user1 name wangpengliang age 25 address beijingOK127.0.0.1:6379> hmget user1 name age address1) "wangpengliang"2) "25"3) "beijing"127.0.0.1:6379> hexists user1 name(integer) 1127.0.0.1:6379> hexists user1 aa(integer) 0
hdel
删除一个或多个字段。格式:
hdel key field
127.0.0.1:6379> hmset user name wangpengliang age 25OK127.0.0.1:6379> hmget user name age1) "wangpengliang"2) "25"127.0.0.1:6379> hdel user name(integer) 1127.0.0.1:6379> hmget user name age1) (nil)2) "25"
hgetall
获取一个哈希是键值对的集合。 格式:
hgetall key
127.0.0.1:6379> hmset user name wangpengliang age 25OK127.0.0.1:6379> hgetall user1) "age"2) "25"3) "name"4) "wangpengliang"
hvals
只返回字段值。 格式:
hvals key
127.0.0.1:6379> hmset user name wangpengliang age 25OK127.0.0.1:6379> hvals user1) "25"2) "wangpengliang"
hkeys
只返回字段名。 格式:
hkeys key
127.0.0.1:6379> hmset user name wangpengliang age 25OK127.0.0.1:6379> hkeys user1) "age"2) "name"
hlen
返回 key 的 hash 的元素个数
127.0.0.1:6379> hmset user name wangpengliang age 25OK127.0.0.1:6379> hlen user(integer) 2
hincrby key field value
指定增量value
127.0.0.1:6379> hset test num 10(integer) 1127.0.0.1:6379> hget test num"10"127.0.0.1:6379> hincrby test num 2(integer) 12
hsetnx key field value
如果该键不存在就创建,如果该键存在就创建失败
127.0.0.1:6379> hsetnx test num 10(integer) 1127.0.0.1:6379> hsetnx test num 20(integer) 0
应用场景
- 主要用于存储部分变更数据,比如存储用户信息等等
List链表
Redis 的链表是简单的字符串列表,排序插入顺序。可以添加元素到 Redis 的列表的头部或尾部
Lpush:表示的是向链表的左添加,也就是向链表的头添加Rpush:表示的是向链表的右添加,也就是向链表的尾添加
lpush key value
向链表左侧添加(头插法)
127.0.0.1:6379> lpush keys one(integer) 1127.0.0.1:6379> lpush keys two(integer) 2127.0.0.1:6379> lpush keys three(integer) 3127.0.0.1:6379> lrange keys 0 -11) "three"2) "two"3) "one"
rpush key value
向链表右侧添加(尾插法)
127.0.0.1:6379> rpush keys one(integer) 1127.0.0.1:6379> rpush keys two(integer) 2127.0.0.1:6379> rpush keys three(integer) 3127.0.0.1:6379> lrange keys 0 -11) "one"2) "two"3) "three"
lpop key
从左边移出一个元素
127.0.0.1:6379> rpush keys one(integer) 1127.0.0.1:6379> rpush keys two(integer) 2127.0.0.1:6379> rpush keys three(integer) 3127.0.0.1:6379> lrange keys 0 -11) "one"2) "two"3) "three"127.0.0.1:6379> lpop keys"one"127.0.0.1:6379> lrange keys 0 -11) "two"2) "three"
rpop key
从右边移出一个元素
127.0.0.1:6379> rpush keys one(integer) 1127.0.0.1:6379> rpush keys two(integer) 2127.0.0.1:6379> rpush keys three(integer) 3127.0.0.1:6379> rpop keys"three"127.0.0.1:6379> lrange keys 0 -11) "one"2) "two"
lrange key start end
命令将返回索引从 start 到 stop 之间的所有元素。Redis 的列表起始索引为 0。如果要获取全部的元素:
lrange key 0 -1
127.0.0.1:6379> rpush keys one(integer) 1127.0.0.1:6379> rpush keys two(integer) 2127.0.0.1:6379> lrange keys 0 -11) "one"2) "two"
llen key
返回链表中元素的个数 相当于关系型数据库中
select count(*)
127.0.0.1:6379> rpush keys one(integer) 1127.0.0.1:6379> rpush keys two(integer) 2127.0.0.1:6379> lrange keys 0 -11) "one"2) "two"127.0.0.1:6379> llen keys(integer) 2
lindex key indexnumber
lindex 命令用来返回指定索引的元素,索引从 0 开始,如果是负数表示从右边开始计算的索引,最右边元素的索引是-1。如果要将列表类型当做数组来用,lindex 命令是必不可少的
127.0.0.1:6379> rpush keys one(integer) 1127.0.0.1:6379> rpush keys two(integer) 2127.0.0.1:6379> rpush keys three(integer) 3127.0.0.1:6379> lrange keys 0 -11) "one"2) "two"3) "three"127.0.0.1:6379> lindex keys 2"three"
lset key indexnumber value
它会将索引为 index的元素赋值为 value,原来的值会被覆盖。如果该列表不存在就会报错。所以使用这个命令之前先使用
exists判断一下
127.0.0.1:6379> rpush keys one(integer) 1127.0.0.1:6379> rpush keys two(integer) 2127.0.0.1:6379> rpush keys three(integer) 3127.0.0.1:6379> lrange keys 0 -11) "one"2) "two"3) "three"127.0.0.1:6379> lset keys 2 twotwoOK127.0.0.1:6379> lrange keys 0 -11) "one"2) "two"3) "twotwo"127.0.0.1:6379> lset keys 10 twotwo(error) ERR index out of range
lrem key count value
移除key链表中count个元素的value值,精确匹配,如果链表中可以有多个重复的值,这里的count指的是可以删除多个相同key的值
127.0.0.1:6379> rpush keys a(integer) 1127.0.0.1:6379> rpush keys b(integer) 2127.0.0.1:6379> rpush keys c(integer) 3127.0.0.1:6379> lrange keys 0 -11) "a"2) "b"3) "c"127.0.0.1:6379> rpush keys d(integer) 4127.0.0.1:6379> rpush keys a(integer) 5127.0.0.1:6379> lrange keys 0 -11) "a"2) "b"3) "c"4) "d"5) "a"127.0.0.1:6379> lrem keys 2 a(integer) 2127.0.0.1:6379> lrange keys 0 -11) "b"2) "c"3) "d"
ltrim list startIndex endIndex
通过下标截取指定的长度,这个时候List已经改变了,只剩下截断的元素
127.0.0.1:6379> clear127.0.0.1:6379> rpush keys a(integer) 1127.0.0.1:6379> rpush keys b(integer) 2127.0.0.1:6379> rpush keys c(integer) 3127.0.0.1:6379> rpush keys d(integer) 4127.0.0.1:6379> lrange keys 0 -11) "a"2) "b"3) "c"4) "d"127.0.0.1:6379> ltrim keys 2 3OK127.0.0.1:6379> lrange keys 0 -11) "c"2) "d"
rpoplpush source destination
移除当前的source链表中的最后一个元素,并且将该元素移动到
destination链表当中
127.0.0.1:6379> rpush keys1 a(integer) 1127.0.0.1:6379> rpush keys1 b(integer) 2127.0.0.1:6379> rpush keys1 c(integer) 3127.0.0.1:6379> rpoplpush keys1 keys2"c"127.0.0.1:6379> lrange keys1 0 -11) "a"2) "b"127.0.0.1:6379> lrange keys2 0 -11) "c"
linsert key BEFORE|AFTER pivot value
在Key列表的指定元素的前/后面插入元素value
127.0.0.1:6379> rpush keys1 a(integer) 1127.0.0.1:6379> rpush keys1 b(integer) 2127.0.0.1:6379> rpush keys1 c(integer) 3127.0.0.1:6379> linsert keys1 before b a1(integer) 4127.0.0.1:6379> lrange keys 0 -1(empty array)127.0.0.1:6379> lrange keys1 0 -11) "a"2) "a1"3) "b"4) "c"127.0.0.1:6379> linsert keys1 after b b1(integer) 5127.0.0.1:6379> lrange keys1 0 -11) "a"2) "a1"3) "b"4) "b1"5) "c"
- List是一个链表,before node after,left ,right都可以插入值
- 如果key不存在,就创建新的链表
- 如果key存在就创建新的值
- 如果移除了所有的值,空链表,也就代表不存在
- 在两边插入或者改动值,效率最高,中间元素相对来说效率会低一点
应用场景
- 消息队列:利用List的PUSH操作,将任务存在List中,然后工作线程再用POP操作将任务取出进行执行。Redis还提供了操作List中某一段的api,你可以直接查询,删除List中某一段的元素
- 消息排队,消息队列(Lpush、Rpop)、栈(Lpush、Lpop)使用list可以构建队列系统,使用sorted set甚至可以构建有优先级的队列系统
Set集合
Redis 的集合是字符串的无序集合。但在Set集合当中,是不允许有重复的。Set是通过hash table实现的,可以进行添加、删除和查找。对集合可以取 并集,交集,差集
sadd key value
添加一个 string 元素到key对应的 set 集合中, 成功返回 1,如果元素已经在集合中返回 0
127.0.0.1:6379> sadd keys a(integer) 1127.0.0.1:6379> sadd keys b(integer) 1127.0.0.1:6379> sadd keys a(integer) 0127.0.0.1:6379> sadd keys c(integer) 1127.0.0.1:6379> smembers keys1) "c"2) "a"3) "b"
scard key
返回 set 的元素个数,如果 set 是空或者key不存在返回 0
127.0.0.1:6379> sadd keys a(integer) 1127.0.0.1:6379> sadd keys b(integer) 1127.0.0.1:6379> sadd keys c(integer) 1127.0.0.1:6379> smembers keys1) "c"2) "a"3) "b"127.0.0.1:6379> scard keys(integer) 3
smembers key
返回 key 对应 set 的所有元素,结果是无序的
127.0.0.1:6379> sadd keys a(integer) 1127.0.0.1:6379> sadd keys b(integer) 1127.0.0.1:6379> sadd keys c(integer) 1127.0.0.1:6379> smembers keys1) "c"2) "a"3) "b"
sismember key value
判断 value 是否在 set 中,存在返回1,0表示不存在或者key不存在
127.0.0.1:6379> sadd keys a(integer) 1127.0.0.1:6379> sadd keys b(integer) 1127.0.0.1:6379> sadd keys c(integer) 1127.0.0.1:6379> smembers keys1) "c"2) "a"3) "b"127.0.0.1:6379> sismember keys a(integer) 1127.0.0.1:6379> sismember keys d(integer) 0
srem key value
从 key 对应 set 中移除给定元素,成功返回1,如果 value 在集合中不存在或者key不存在返回 0
127.0.0.1:6379> sadd keys a(integer) 1127.0.0.1:6379> sadd keys b(integer) 1127.0.0.1:6379> sadd keys c(integer) 1127.0.0.1:6379> smembers keys1) "c"2) "a"3) "b"127.0.0.1:6379> srem keys a(integer) 1127.0.0.1:6379> smembers keys1) "c"2) "b"127.0.0.1:6379> srem keys g(integer) 0
srandmember key nums
从key集合中随机抽取nums个元素
127.0.0.1:6379> sadd keys a(integer) 1127.0.0.1:6379> sadd keys b(integer) 1127.0.0.1:6379> sadd keys c(integer) 1127.0.0.1:6379> srandmember keys 21) "a"2) "c"
spop key
随机删除一些key集合中的元素
127.0.0.1:6379> sadd keys a(integer) 1127.0.0.1:6379> sadd keys b(integer) 1127.0.0.1:6379> sadd keys c(integer) 1127.0.0.1:6379> spop keys"a"127.0.0.1:6379> smembers keys1) "c"2) "b"
smove source destination member
将原集合source中的member元素移动到destination集合中
127.0.0.1:6379> sadd keys a(integer) 1127.0.0.1:6379> sadd keys b(integer) 1127.0.0.1:6379> sadd keys c(integer) 1127.0.0.1:6379> smove keys keys2 a(integer) 1127.0.0.1:6379> smembers keys1) "c"2) "b"127.0.0.1:6379> smembers keys21) "a"
sdiff key1 key2
取出key1中与key2集合的不同元素,差集
127.0.0.1:6379> sadd keys1 a(integer) 1127.0.0.1:6379> sadd keys1 b(integer) 1127.0.0.1:6379> sadd keys1 c(integer) 1127.0.0.1:6379> sadd keys2 c(integer) 1127.0.0.1:6379> sadd keys2 g(integer) 1127.0.0.1:6379> sadd keys2 f(integer) 1127.0.0.1:6379> sdiff keys1 keys21) "a"2) "b"
sinter key1 key2
取key1与key2两个集合中相同的元素,交集
127.0.0.1:6379> sadd keys1 a(integer) 1127.0.0.1:6379> sadd keys1 b(integer) 1127.0.0.1:6379> sadd keys1 c(integer) 1127.0.0.1:6379> sadd keys2 c(integer) 1127.0.0.1:6379> sadd keys2 g(integer) 1127.0.0.1:6379> sadd keys2 f(integer) 1127.0.0.1:6379> sinter keys1 keys21) "c"
sunion key1 key2
将key1与key2两个集合中的元素合在一起,并集
127.0.0.1:6379> sadd keys1 a(integer) 1127.0.0.1:6379> sadd keys1 b(integer) 1127.0.0.1:6379> sadd keys1 c(integer) 1127.0.0.1:6379> sadd keys2 c(integer) 1127.0.0.1:6379> sadd keys2 g(integer) 1127.0.0.1:6379> sadd keys2 f(integer) 1127.0.0.1:6379> sunion keys1 keys21) "a"2) "c"3) "g"4) "b"5) "f"
应用场景
- 微博、用户将所有关注的人都放入到一个set集合当中,将它的粉丝也放在一个集合中
- 共同关注、共同爱好、二度好友、QQ的好友推荐(六度分割理论)
SortedSet( 有序集合) zset
Redis 的有序集合类似于 Redis 的集合,字符串不重复的集合;zset是一个有序集合,每一个成员有一个分数与之对应,成员不可以重复,但是分数是可以重复的,zset会自动用分数对成员进行排序
zadd key score value
将一个或多个 value 及其 socre 加入到 set 中
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zrange keys 0 -11) "a"
zrange key start end
0 和-1 表示从索引为 0 的元素到最后一个元素(同 LRANGE 命令相似)
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zrange keys 0 -11) "a"
zrange key 0 -1 withscores
连同 score 一块输出,使用 WITHSCORES 参数
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zadd keys 2 b(integer) 1127.0.0.1:6379> zadd keys 3 c(integer) 1127.0.0.1:6379> zrange keys 0 -1 withscores1) "a"2) "1"3) "b"4) "2"5) "c"6) "3"
zremrangebyscore key start end
范围删除操作
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zadd keys 2 b(integer) 1127.0.0.1:6379> zadd keys 3 c(integer) 1127.0.0.1:6379> zrange keys 0 -1 withscores1) "a"2) "1"3) "b"4) "2"5) "c"6) "3"127.0.0.1:6379> zremrangebyscore keys 0 2(integer) 2127.0.0.1:6379> zrange keys 0 -1 withscores1) "c"2) "3"
zrangebyscore key min max
升序排序操作,将key按最小值到最大值进行输出
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zadd keys 2 b(integer) 1127.0.0.1:6379> zadd keys 3 c(integer) 1127.0.0.1:6379> zrangebyscore keys 1 31) "a"2) "b"3) "c"
srandmember key nums
倒序排序操作,将key按照从大到小排序输出
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zadd keys 2 b(integer) 1127.0.0.1:6379> zadd keys 3 c(integer) 1127.0.0.1:6379> zrevrangebyscore keys 3 11) "c"2) "b"3) "a"
zrem key value
删除指定的元素
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zadd keys 2 b(integer) 1127.0.0.1:6379> zadd keys 3 c(integer) 1127.0.0.1:6379> zrem keys b(integer) 1127.0.0.1:6379> zrange keys 0 -11) "a"2) "c"127.0.0.1:6379> zrem keys d(integer) 0127.0.0.1:6379> zrange keys 0 -11) "a"2) "c"
zcard key
获取有序集合中的个数
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zadd keys 2 b(integer) 1127.0.0.1:6379> zadd keys 3 c(integer) 1127.0.0.1:6379> zrem keys b(integer) 1127.0.0.1:6379> zrange keys 0 -11) "a"2) "c"127.0.0.1:6379> zrem keys d(integer) 0127.0.0.1:6379> zrange keys 0 -11) "a"2) "c"127.0.0.1:6379> zcard keys(integer) 2
count key min max
获取指定区间的成员数量
127.0.0.1:6379> zadd keys 1 a(integer) 1127.0.0.1:6379> zadd keys 2 b(integer) 1127.0.0.1:6379> zadd keys 3 c(integer) 1127.0.0.1:6379> zrem keys b(integer) 1127.0.0.1:6379> zrange keys 0 -11) "a"2) "c"127.0.0.1:6379> zrem keys d(integer) 0127.0.0.1:6379> zrange keys 0 -11) "a"2) "c"127.0.0.1:6379> zcard keys(integer) 2127.0.0.1:6379> zcount keys 0 2(integer) 1
应用场景
- 存储班级成绩表、工资表排序
参考:
Redis中文命令手册
