集合本是无序的,有序集合属于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集合(SET)操作
下一篇:Redis的Flush相关命令