首页 > 其他分享 >3.6 zset(有序集合)

3.6 zset(有序集合)

时间:2024-08-22 20:26:09浏览次数:2  
标签:achievements 127.0 key zset 0.1 3.6 6379 score 有序

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"

标签:achievements,127.0,key,zset,0.1,3.6,6379,score,有序
From: https://www.cnblogs.com/Tmars/p/18374688

相关文章

  • ZoneTree: 高性能ACID兼容的.NET有序键值数据库
    安装Install-PackageZoneTree简单示例usingvarzoneTree=newZoneTreeFactory<int,string>().OpenOrCreate();zoneTree.Upsert(39,"HelloZoneTree");配置示例//设置数据库的存储路径vardataPath="data/mydatabase";//使用using语句确保ZoneTre......
  • 如何去除有序数组中的重复元素
    题目要求:输入一个有序的数组,你需要原地删除重复的元素,使得每个元素只能出现一次,返回去重后新数组的长度题目分析:原地删除,即不可以创建新的辅助数组,那么需要在原数组上修改解决。这种一般采用双指针技巧即:如果是普通数组,使用两个指针slow和fast,fast负责网后遍历,如果发现数组元素......
  • 2个有序数组,归并重拍
    publicstaticvoidmerge(int[]a,int[]b){varpa=a.Length-1;varpb=b.Length-1;varc=newint[b.Length];varpc=b.Length-1;while(pc>=0){if(a[pa]>b[pb]){c[pc]=a[pa];......
  • SpringBoot依赖之Spring Data Redis一有序集合Sorted Set
    概念SpringDataRedis(Access+Driver)依赖名称:SpringDataRedis(Access+Driver)功能描述:Advancedandthread-safeJavaRedisclientforsynchronous,asynchronous,andreactiveusage.SupportsCluster,Sentinel,Pipelining,Auto-Reconnect,Codecsand......
  • leetcode 21.合并两个有序链表
    leetcode21.合并两个有序链表题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。迭代法:思路:不断迭代,谁小指向谁publicListNodemergeTwoLists(ListNodelist1,ListNodelist2){if(list1==null){......
  • 力扣面试经典算法150题:删除有序数组中的重复项 II
    删除有序数组中的重复项II今天的题目是力扣面试经典150题中的数组的中等难度题:删除有序数组中的重复项II题目链接:https://leetcode.cn/problems/remove-duplicates-from-sorted-array-ii/description/?envType=study-plan-v2&envId=top-interview-150题目描述给定一......
  • Python合并两个有序链表
    题目合并两个有序链表,如l1=[1,3,4],l2=[1,2,4,5],合并后l3=[1,1,2,3,4,4,5]解决思路需要构建节点Node和链表LinkedList结构如果root节点不确定,可以创建一个哑节点Node(0),作为root节点的前节点,也是初始节点(当前节点)循环当l1当前节点不为None并且l2当前节点不为None时,那个节......
  • 【代码随想录】一、数组:3.双指针 - 977.有序数组的平方
    本文为977.有序数组的平方的解法,部分图文参考自代码随想录977.有序数组的平方。1.题目1:977.有序数组的平方1.1.解法1:直接排序classSolution{public:vector<int>sortedSquares(vector<int>&nums){for(inti=0;i<nums.size();i++){n......
  • 合并两个有序链表
    1、publicclassMergeTwoSortedLists{//方法:合并两个有序链表publicstaticListNodemergeTwoLists(ListNodel1,ListNodel2){//创建一个虚拟节点作为合并后链表的头节点ListNodedummy=newListNode(0);ListNodecurrent=du......
  • SeaTunnel 2.3.6 在Ubuntu环境的安装
    SeaTunnel2.3.6在Ubuntu环境的安装目录SeaTunnel2.3.6在Ubuntu环境的安装环境变量下载软件下载连接器连接器下载配置下载连接器插件下载连接器加速测试SeaTunnel示例批任务测试Mysql-CDC到Postgresql创建测试表编辑任务配置文件下载数据库驱动启动集群模式启动任务环境说......