首页 > 技术分享 > Redis
收藏

Redis有序集合主要操作

11/26 11:11
大潇博客 原创文章,转载请标明出处

集合本是无序的,有序集合属于redis独有特性(自己添加)


1、向有序集合中添加一个或多个成员

zadd key score_1 member_1 score_2 member_2 ...

添加成功,返回添加成员的数量

若有的成员已存在,则返回被修改成员的数量

zadd值为相同时,返回0

注意:各score的值必须为浮点数,若score包含字母或标点符号等字符串,redis会报错

例如:

zadd class 18 lily 20 lucy 15 hmm

# (integer) 3

再次运行

zadd class 18 lily 20 lucy 15 hmm

# (integer) 0

此时class集合内的成员排序为:

[0] => 15 hmm

[1] => 18 lily

[2] => 20 lucy


2、获取有序集合的成员数

zcard key

如上面的集合:zcard class

zcard class

# (integer) 3


3、按正序输出集合成员(score从小到大),默认只有成员(member),不带(score)

zrange key start stop [withscores]

start必填,表示从哪个位置开始,从0开始计算

stop表填,表示取多少个值,-1表示全部

widthscores选填,加上该参数后,返回值中包括分数(score)和成员member(member)

如上面的集合:

zrange class 0 2

# hmm lily lucy

zrange class 0 1 withscores

# 15 hmm 18 lily 20 lucy


4、按倒序输出集合成员(score从大到小)

zrevrange key start stop [withscores]


5、返回集合中指定成员的分值(score)

zscore key member

如上集合:zscore class lucy

zscore class lucy

# 20


6、返回有序集合中指定成员的排名(根据score做正序排序),下标从0开始

zrank key member

如上面的集合

zrank class lucy

# (integer) 2


7、倒叙返回成员排名索引

zrevrank key member

如上面的集合:

zrevrank class lucy

# (integer) 0


8、返回集合中分数在指定区间的成员数量

zcount key min max

如上集合:zcount class 0 18

zcount class 0 18

# (integer) 2


9、删除集合中的成员,操作成功将返回删除的个数

zrem key member_1 [member_2] ...

如上面的集合:zrem class hmm

zrem class hmm

# (integer) 1


所有操作如下图

redis有序集合.png


打赏

阅读排行

大家都在搜

博客维护不易,感谢你的肯定
扫码打赏,建议金额1-10元
  • 15601023311