Redis 四:存储类型之有序集合

时间:2024-01-04 09:13:20
有序集合似乎更大的操作是由于加了一个叫做“分子”的东西
事实上就好像普通的数据,只是为这个数据加了一个纯数字的标识,
通过操作这些标识来得到我们想要的数据!
分子可以是整形,也可以是双精度浮点型:
====================================================
.zadd num a b c
添加一个叫num的有序集合,a元素为100分,b元素为80分....
.zscore num a
获取num集合中元素名为a的分子
====================================================
.zrange num
返回num集合中从0索引开始到2索引!按从小到大的顺序
返回 c b a
.zrange num withscores
跟上面一样,只不过会将分子也同时输出出来
c b a
.zrevrange 跟上面两个一样的用法,区别是从大到小排序
====================================================
.zrangebyscore num
返回分子80 - 100之间的所有元素
.zrangebysocre num (
返回分子81 - 100之间的所有元素,加半个括号代表不包含当前端点
.上述2个命令可以加上withscores,把分子跟元素同时显示出来
=====================================================
.zrangebysocre num limit
获取num集合中分子60 - 200之间的前2个(索引0开始,取2个)
=====================================================
.zincrby num a (用负数就可以减分)
给num集合中元素名为a的分子+
.zcard num 获取num集合中元素个数
.zcount num 获取num集合中分子80到200间共有多少个元素
.zrem num a 删除a
.zremrangebyrank num
删除num集合从索引0开始到索引2位置的3个元素(包括分子一并删除)
.zremrangebysocre num
删除num集合中分子在40到200之间的所有元素(包括分子一并删除)
.zrank num a
返回将num中的元素按照分子从小到大排序后,a的元素的位置
zrevrank num a
相反,从大到小排序
.zinterstore num5 num2 num
将num2与num中对应元素的分子相加,将结果存入到num5中
zadd num1 a b c
zadd num2 c a b
zinterstore num3 num1 num2
zrange num3 - withscores
返回:
c b a
.zinterstore num5 num2 num aggregate min
跟上述一样,只不过只需要最小的值参与
返回:
c b a
.zinterstore num5 num2 num aggregate max
最大值参与