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

Zset(有序集合)

时间:2023-08-27 13:45:02浏览次数:27  
标签:salary 127.0 Zset 0.1 6379 有序 集合 integer 1127.0

Zset(有序集合)

添加一个和添加多个值

127.0.0.1:6379> ZADD myset 1 one
(integer) 1
127.0.0.1:6379> ZADD myset 2 two 3 three
(integer) 2
127.0.0.1:6379> ZADD myset 3 three3
(integer) 1
127.0.0.1:6379> ZRANGE myset 0 -1
1) "one"
2) "two"
3) "three"
4) "three3"
127.0.0.1:6379> ZADD myset 5 five
(integer) 1
127.0.0.1:6379> ZRANGE myset 0 -1
1) "one"
2) "two"
3) "three"
4) "three3"
5) "five"
127.0.0.1:6379> ZADD myset 11 eleven
(integer) 1
127.0.0.1:6379> ZRANGE myset 0 -1
1) "one"
2) "two"
3) "three"
4) "three3"
5) "five"
6) "eleven"

排序如何实现

###########################################
首先添加三个数据
127.0.0.1:6379> ZADD salary 2500 xiaohong  
(integer) 1
127.0.0.1:6379> ZADD salary 5000 zhangsan
(integer) 1
127.0.0.1:6379> ZADD salary 500 fangzi
(integer) 1
127.0.0.1:6379>
###########################################
这里面需要三个参数 第一个是要排序的集合 第二个是最小值 使用-inf 代表负无穷 第三个是最大值 使用+inf代表无穷
负无穷到正无穷 就可以列出所有的数据排序 也就是由小到大
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf
1) "fangzi"
2) "xiaohong"
3) "zhangsan"
127.0.0.1:6379>
###########################################
由大到小排序
127.0.0.1:6379> ZREVRANGE salary 0 -1
1) "zhangsan"
2) "xiaohong"
3) "fangzi"
127.0.0.1:6379>

###########################################
还可以在后面加上条件
127.0.0.1:6379> ZRANGEBYSCORE salary -inf +inf withscores
1) "fangzi"
2) "500"
3) "xiaohong"
4) "2500"
5) "zhangsan"
6) "5000"
127.0.0.1:6379>
###########################################
移除集合中的指定元素
127.0.0.1:6379> ZRANGE salary 0 -1
1) "fangzi"
2) "xiaohong"
3) "zhangsan"
127.0.0.1:6379> ZREM salary fangzi
(integer) 1
127.0.0.1:6379> ZRANGE salary  0 -1
1) "xiaohong"
2) "zhangsan"
127.0.0.1:6379>
###########################################
查看集合中有多少元素
127.0.0.1:6379> ZCARD salary
(integer) 2
127.0.0.1:6379>
###########################################
获取指定区间有多少个元素
127.0.0.1:6379> ZCOUNT salary 500 5000
(integer) 3
127.0.0.1:6379> ZCOUNT salary 500 2500
(integer) 2


应用场景 学生成绩 工资

设置消息权重 1 普通消息 2 重要消息

实现排行榜 比如播放量排行榜

标签:salary,127.0,Zset,0.1,6379,有序,集合,integer,1127.0
From: https://www.cnblogs.com/AnJiaYu/p/17660201.html

相关文章

  • 线程安全的集合
    目录多线程环境下使用Dictionary产生的问题何时使用线程安全集合解决办法相关参考.NET中的Dictionary是非线程安全的,在多线程环境中可能会导致CPU使用率为100%。多线程环境下使用Dictionary产生的问题关于C#中Dictionary多线程情况下CPU100%问题的详细分析关于C#的Dictionar......
  • JAVA 集合
    Java集合体系Java集合框架图Java集合主要分为两大类:实现了Collection接口的单列集合:实现了Map接口的双列集合:集合框架体系序号接口描述1Collection接口Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素,Java不提供直接继......
  • LeetCode-26. 删除有序数组中的重复项(Java)
    这是我在51CTO博客开启的写作之路,第一次正式写博客记录我在LeetCode的刷题日,希望能帮助更多的小伙伴攻面自己心仪的公司offer。如下对于 LeetCode-26. 删除有序数组中的重复项,进行全面解析并小结解题思路,同学们请参考:1.题目描述给你一个 升序排列 的数组 nums ,请你 原地 删......
  • 代码随想录算法训练营第二十三天| 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜
     669. 修剪二叉搜索树    卡哥建议:这道题目比较难,比 添加增加和删除节点难的多,建议先看视频理解。   题目链接/文章讲解:https://programmercarl.com/0669.%E4%BF%AE%E5%89%AA%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91.html   视频讲解:https://www.......
  • LeetCode-21. 合并两个有序链表(Java)
    这是我在51CTO博客开启的写作之路,第一次正式写博客记录我在LeetCode的刷题日,希望能帮助更多的小伙伴攻面自己心仪的公司offer。如下对于 LeetCode-21.合并两个有序链表,进行全面解析并小结解题思路,同学们请参考:1.题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表......
  • 代码随想录第二天|977.有序数组的平方;209.长度最小的子数组;59.螺旋矩阵II,总结
    今天的这三道题每道题对我来说都不简单,有序数组的平方和长度最小的子数组这两道题还能用暴力求解,螺旋矩阵看着简单却没有思路,磨了半小时还是决定直接看讲解有序数组平方和用的双指针的思想,代码如下:1classSolution{2public:3vector<int>sortedSquares(vector<int......
  • EAS_指定条件查询集合,查询指定字段获取集合
    EntityViewInfoview=newEntityViewInfo();FilterInfofilter=newFilterInfo();SelectorItemCollectionsic=super.getSelectors();sic.add(newSelectorItemInfo("*"));sic.add(new......
  • iOS开发Swift-集合类型
    集合基本类型:数组Array(有序),集合Set(无序不重复),字典Dictionary(无序键值对)1.数组Arrays(1)数组的表示Array<Element>[Element] (2)创建空数组varsomeInts:[Int]=[]someInts.count//数组长度 (3)带值数组vara=Array(repeating:0.0,count:3)//[0......
  • MongoDB :第四章:集合的创建与删除
    MongoDB创建集合本章节我们为大家介绍如何使用MongoDB来创建集合。MongoDB中使用createCollection()方法来创建集合。语法格式:db.createCollection(name,options)参数说明:name:要创建的集合名称options:可选参数,指定有关内存大小及索引的选项 options可以......
  • 什么是集合
    集合框架:用于存储数据的容器。集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。接口:表示集合的抽象数据类型。接口允许我们操作集合时不必关注具体实现,从而达到“多态”。在面向对象编......