redis学习笔记(七)

文章目录

zset(有序集合)

有序集合(score/value),去重并且根据score权重值来进行排序的。score从小到大排列。

(1)添加成员

bash 复制代码
zadd key score1 member1 score2 member2 score3 member3 ....

设置榜单achievements,设置成绩和用户名作为achievements的成员

bash 复制代码
127.0.0.1:6379> zadd achievements 61 xiaoming 62 xiaohong 83 xiaobai  78 xiaohei 87 xiaohui 99 xiaolan
(integer) 6
127.0.0.1:6379> zadd achievements 85 xiaohuang 
(integer) 1
127.0.0.1:6379> zadd achievements 54 xiaoqing

(2)获取score在指定区间的所有成员

python 复制代码
zrangebyscore key min max     # 按score进行从低往高排序获取指定score区间
zrevrangebyscore key min max  # 按score进行从高往低排序获取指定score区间
zrange key start stop         # 按scoer进行从低往高排序获取指定索引区间
zrevrange key start stop      # 按scoer进行从高往低排序获取指定索引区间
python 复制代码
zrange achievements 0 -1  # 从低到高全部成员

(3)获取集合长度

bash 复制代码
zcard key

获取users的长度

bash 复制代码
zcard achievements

(4)获取指定成员的权重值

bash 复制代码
zscore key member

获取users中xiaoming的成绩

bash 复制代码
127.0.0.1:6379> zscore achievements xiaobai
"93"
127.0.0.1:6379> zscore achievements xiaohong
"62"
127.0.0.1:6379> zscore achievements xiaoming
"61"

(5)获取指定成员在集合中的排名

排名从0开始计算

bash 复制代码
zrank key member      # score从小到大的排名
zrevrank key member   # score从大到小的排名

获取achievements中xiaohei的分数排名,从大到小

bash 复制代码
127.0.0.1:6379> zrevrank achievements xiaohei
(integer) 4

(6)获取score在指定区间的所有成员数量

bash 复制代码
zcount key min max

获取achievements从0~60分之间的人数[闭区间]

bash 复制代码
127.0.0.1:6379> zcount achievements 0 60
(integer) 2
127.0.0.1:6379> zcount achievements 54 60
(integer) 2

(7)给指定成员增加增加权重值

bash 复制代码
zincrby key score member

给achievements中xiaobai增加10分

bash 复制代码
127.0.0.1:6379> ZINCRBY achievements 10 xiaobai
"93

(8)删除成员

bash 复制代码
zrem key member1 member2 member3 ....

从achievements中删除xiaoming的数据

bash 复制代码
zrem achievements xiaoming

(9)删除指定数量的成员

bash 复制代码
# 删除指定数量的成员,从最低score开始删除
zpopmin key [count]
# 删除指定数量的成员,从最高score开始删除
zpopmax key [count]

例子:

bash 复制代码
# 从achievements中提取并删除成绩最低的2个数据
127.0.0.1:6379> zpopmin achievements 2
1) "xiaoqing"
2) "54"
3) "xiaolv"
4) "60"

# 从achievements中提取并删除成绩最高的2个数据
127.0.0.1:6379> zpopmax achievements 2
1) "xiaolan"
2) "99"
3) "xiaobai"
4) "93"
相关推荐
_Kayo_1 小时前
node.js 学习笔记3 HTTP
笔记·学习
CCCC13101634 小时前
嵌入式学习(day 28)线程
jvm·学习
星星火柴9365 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
小狗爱吃黄桃罐头5 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
鼠鼠我捏,要死了捏6 小时前
生产环境Redis缓存穿透与雪崩防护性能优化实战指南
redis·cache
艾莉丝努力练剑6 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA7 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习
Cx330❀8 小时前
【数据结构初阶】--排序(五):计数排序,排序算法复杂度对比和稳定性分析
c语言·数据结构·经验分享·笔记·算法·排序算法
杜子不疼.8 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习
小幽余生不加糖8 小时前
电路方案分析(二十二)适用于音频应用的25-50W反激电源方案
人工智能·笔记·学习·音视频