redis学习笔记(七)

简介: redis学习笔记(七)

zset(有序集合)

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

(1)添加成员

zadd key score1 member1 score2 member2 score3 member3 ....

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

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在指定区间的所有成员

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

(3)获取集合长度

zcard key

获取users的长度

zcard achievements

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

zscore key member

获取users中xiaoming的成绩

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开始计算

zrank key member      # score从小到大的排名
zrevrank key member   # score从大到小的排名

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

127.0.0.1:6379> zrevrank achievements xiaohei
(integer) 4

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

zcount key min max

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

127.0.0.1:6379> zcount achievements 0 60
(integer) 2
127.0.0.1:6379> zcount achievements 54 60
(integer) 2

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

zincrby key score member

给achievements中xiaobai增加10分

127.0.0.1:6379> ZINCRBY achievements 10 xiaobai
"93

(8)删除成员

zrem key member1 member2 member3 ....

从achievements中删除xiaoming的数据

zrem achievements xiaoming

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

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

例子:

# 从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"


相关文章
|
前端开发 JavaScript 安全
PHP在现代Web开发中的角色与挑战
【8月更文挑战第18天】随着互联网技术的飞速发展,PHP作为一门历史悠久的服务器端脚本语言,一直在Web开发领域占据着举足轻重的地位。然而,面对新兴的语言和技术,PHP也遭遇了前所未有的挑战。本文将探讨PHP在现代Web开发中的角色定位、面临的挑战以及未来发展的可能性,旨在为PHP开发者提供行业洞察,并鼓励对PHP的持续关注和创新。
|
SQL 分布式计算 数据处理
MaxCompute操作报错合集之使用Spark查询时函数找不到的原因是什么
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
143 3
|
存储 容器
【Azure 存储服务】Azure Blob下面是否可以创建子文件夹
【Azure 存储服务】Azure Blob下面是否可以创建子文件夹
100 0
|
Ubuntu Cloud Native 安全
《Linux命令宝典:从初学者到专家的100个核心技巧》
《Linux命令宝典:从初学者到专家的100个核心技巧》
176 0
|
Java Maven
Maven - Install 控制台乱码解决方案
Maven - Install 控制台乱码解决方案
1125 0
Maven - Install 控制台乱码解决方案
|
前端开发 JavaScript
这些前端大厂面试题你会做吗?每日10题大厂面试题(六)
这些前端大厂面试题你会做吗?每日10题大厂面试题(六)
123 0
LeetCode 5449. 检查数组对是否可以被 k 整除(195周赛)
给你一个整数数组 arr 和一个整数 k ,其中数组长度是偶数,值为 n 。 现在需要把数组恰好分成 n / 2 对,以使每对数字的和都能够被 k 整除。
395 0
|
弹性计算
【图文】实操创建快照
帮您快速掌握如何创建快照。
2301 0
千里走单骑:02-北京到上海骑记--Day1.首日征程
Day1: 日期 (2017年04月15日) 路书 北京昌平→朝阳区→通州区→三河市→天津武清大孟庄镇 踏出第一步,车就坏了 清晨告别家人,刚出门,就发现我的变速器坏了,有点刮链子。
1314 0