Redis 学习笔记 数据类型 - sortedset

Redis 学习笔记 数据类型 - sortedset

Redis排序集合是排序的集合,其元素是二进制安全的字符串。排序集合按照分数进行排序,同时支持set的集合操作,比如
合并,交集,差集。排序的规则是按分数进行,如果分数相同的话,按字符的字典顺序进行。

添加元素,添加元素时需要指定score
127.0.0.1:6442> zadd zset1 2001 A1
(integer) 1
127.0.0.1:6442> zadd zset1 2002 A2
(integer) 1
127.0.0.1:6442> zadd zset1 1999 A3
(integer) 1
127.0.0.1:6442> zadd zset1 1998 A4
(integer) 1
127.0.0.1:6442> zadd zset1 1997 A5
(integer) 1
127.0.0.1:6442> zadd zset1 2003 A6
(integer) 1
127.0.0.1:6442> zadd zset1 2003 A7
(integer) 1
127.0.0.1:6442> zadd zset1 2004 A9
(integer) 1
127.0.0.1:6442> zadd zset1 2005 A9
(integer) 0
127.0.0.1:6442>

根据score的范围查找集合中的数据,-1表示返回所有数据。
127.0.0.1:6442> zrange zset1 0 -1
1) "A5"
2) "A4"
3) "A3"
4) "A1"
5) "A2"
6) "A6"
7) "A7"
8) "A9"

根据score的范围查找集合中的数据,-1表示返回所有数据。逆序返回。
127.0.0.1:6442> zrevrange zset1 0 -1
1) "A9"
2) "A7"
3) "A6"
4) "A2"
5) "A1"
6) "A3"
7) "A4"
8) "A5"

根据score的范围查找集合中的数据,-1表示返回所有数据。并返回带有分数。
127.0.0.1:6442> zrange zset1 0 -1 withscores
 1) "A5"
 2) "1997"
 3) "A4"
 4) "1998"
 5) "A3"
 6) "1999"
 7) "A1"
 8) "2001"
 9) "A2"
10) "2002"
11) "A6"
12) "2003"
13) "A7"
14) "2003"
15) "A9"
16) "2005"

根据score的范围查找集合中的数据,-inf表示小于某个值都返回。
127.0.0.1:6442> zrangebyscore zset1 -inf 2001
1) "A5"
2) "A4"
3) "A3"
4) "A1"

返回某个值的rank。
127.0.0.1:6442> zrange zset1 0 -1 withscores
1) "A5"
2) "1997"
3) "A4"
4) "1998"
5) "A3"
6) "1999"
7) "A9"
8) "2005"

127.0.0.1:6442> zrank zset1 A5
(integer) 0
127.0.0.1:6442> zrank zset1 "A5"
(integer) 0
127.0.0.1:6442> zrank zset1 "A4"
(integer) 1
127.0.0.1:6442> zrank zset1 "A3"
(integer) 2
127.0.0.1:6442> zrank zset1 "A9"
(integer) 3

根据值的字母顺序查找集合中的数据。
127.0.0.1:6442> zrange zset2 0 -1
1) "A1"
2) "A2"
3) "B1"
4) "B2"
5) "B3"
6) "C1"
7) "D1"

127.0.0.1:6442> zrangebylex zset2 [B [D
1) "B1"
2) "B2"
3) "B3"
4) "C1"

127.0.0.1:6442> zrangebylex zset2 [B [D]
1) "B1"
2) "B2"
3) "B3"
4) "C1"
5) "D1"
127.0.0.1:6442> zrangebylex zset2 [B] [D]
1) "C1"
2) "D1"

更新某个值的score,增加时如果值已经存在,就将score更新。
127.0.0.1:6442> zrange zset1 0 -1 withscores
1) "A5"
2) "1997"
3) "A4"
4) "1998"
5) "A3"
6) "1999"
7) "A9"
8) "2005"
127.0.0.1:6442> zadd zset1 2006 A9
(integer) 0
127.0.0.1:6442> zrange zset1 0 -1 withscores
1) "A5"
2) "1997"
3) "A4"
4) "1998"
5) "A3"
6) "1999"
7) "A9"
8) "2006"


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25105315/viewspace-2122062/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25105315/viewspace-2122062/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值