Redis数据类型SortedSET
Sorted Set有点像Set和Hash的结合体。
和Set一样,它里面的元素是唯一的,类型是String,所以它可以理解为就是一个Set。
但是Set里面的元素是无序的,而Sorted Set里面的元素都带有一个浮点值,叫做分数(score),所以这一点和Hash有点像,因为每个元素都映射到了一个值。
Sorted Set是有序的,规则如下:
如果A.score > B.score,那么A > B。
如果A.score == B.score,那么A和B的大小就通过比较字符串来决定了,而A和B的字符串是不会相等的,因为Sorted Set里面的值都是唯一的。
ZADD
ZADD可以添加元素到Sorted Set,就和Set的SADD命令差不多
ZRANGE,ZREVRANGE
ZRANGE默认按分数由低到高把Sorted Set的元素显示出来
想按分数要从高到低显示,需要使用ZREVRANGE
也可以一同把分数显示出来,使用参数WITHSCORES
ZRANGEBYSCORE
ZRANGEBYSCORE可以按范围显示Sorted Set,格式是zrangebyscore key 分数下限 分数上限
可以看到结果也包括了分数下限和分数上限这两个边
ZREMRANGEBYSCORE
ZREMRANGEBYSCORE可以按范围移除元素
该命令返回的是移除元素的个数。
其中-inf和inf分别表示负无穷和正无穷。
ZRANK,ZREVRANK
ZRANK命令可以获得元素的排名, ZREVRANK 反之
词典分数
Sorted Set里分数相同的元素是按照词典分数(可以理解为比较字符串)进行排序的
ZRANGEBYLEX
ZRANGEBYLEX可以按词典范围展示Sorted Set
可以看到该命令把开头字目为A到F(不包括F)的元素都显示了出来
还有ZREVRANGEBYLEX,ZREMRANGEBYLEX,ZLEXCOUNT等针对词典的命令,请自行探索。
C#操作SortedSET
class Program{static void Main(string[] args){ConnectionMultiplexer connectionMultiplexer = ConnectionMultiplexer.Connect("120.132.116.153:6379");IDatabase db = connectionMultiplexer.GetDatabase(0);db.KeyDelete("players");db.KeyDelete("names");//ZADDdb.SortedSetAdd("players", "a1", 10);db.SortedSetAdd("players", new SortedSetEntry[]{new SortedSetEntry("b2",21),new SortedSetEntry("b3",22),new SortedSetEntry("a2",11),new SortedSetEntry("a5",14),new SortedSetEntry("a6",15),new SortedSetEntry("a3",12),new SortedSetEntry("a4",13),new SortedSetEntry("b4",23),new SortedSetEntry("b5",24),new SortedSetEntry("b6",25),});//ZRANGEvar lists = db.SortedSetRangeByRank("players", 0, -1);foreach (var item in lists){Console.WriteLine($"{item}");}Console.WriteLine("----------------------------");//ZREVRANGE WITHSCORES var lists1 = db.SortedSetRangeByRankWithScores("players", 0, -1, Order.Descending);foreach (var item in lists1){Console.WriteLine($"{item}");}Console.WriteLine("----------------------------");//ZRANGEBYSCORE WITHSCORES var list2 = db.SortedSetRangeByScoreWithScores("players", 10, 15);foreach (var item in list2){Console.WriteLine($"{item}");}Console.WriteLine("----------------------------");//ZREMRANGEBYSCOREConsole.WriteLine($"{db.SortedSetRemoveRangeByScore("players", double.NegativeInfinity, 15)}");var lists3 = db.SortedSetRangeByRankWithScores("players", 0, -1);foreach (var item in lists3){Console.WriteLine($"{item}");}Console.WriteLine("----------------------------");//ZRANKConsole.WriteLine($"a1排名顺序:{db.SortedSetRank("players", "b2")}");Console.WriteLine($"a1排名倒序:{db.SortedSetRank("players", "b2", Order.Descending)}");Console.WriteLine("----------------------------");db.SortedSetAdd("names", new SortedSetEntry[]{new SortedSetEntry("AB",0),new SortedSetEntry("BERRD",0),new SortedSetEntry("CBsdad",0),new SortedSetEntry("DBasd",0),new SortedSetEntry("EBasd",0),new SortedSetEntry("FBad",0),new SortedSetEntry("HBasd",0),new SortedSetEntry("3Basd",0),new SortedSetEntry("7Bfh",0),new SortedSetEntry("6Bfgh",0),});//ZRANGEBYLEXvar lists4 = db.SortedSetRangeByValue("names", "C", "F");foreach (var item in lists4){Console.WriteLine($"{item}");}Console.ReadLine();}}
转载于:https://www.cnblogs.com/lgxlsm/p/10722748.html
Redis数据类型SortedSET相关推荐
- Redis数据类型与操作命令
1. 键值对数据库 1.1 redis数据结构 redis的数据是 key-value 形式的键值对,其中 key 其实都是字符串的形式,而 value 的数据类型,也就是数据的保存形式,底层实现的方 ...
- Redis 数据类型之(底层解析)
Redis 数据类型之(底层解析) Redis 提供了5种数据类型:String(字符串).Hash(哈希).List(列表).Set(集合).Zset(有序集合),理解每种数据类型的特点对于redi ...
- Redis 数据类型介绍
Redis 数据类型介绍 你也许已经知道Redis并不是简单的key-value存储,实际上他是一个数据结构服务器,支持不同类型的值.也就是说,你不必仅仅把字符串当作键所指向的值.下列这些数据类型都可 ...
- redis设置密码和启动 redis数据类型
Redis有着更为复杂的数据结构并且提供对他们的原子性操作,这是一个不同于其他数据库的进化路径.Redis的数据类型都是基于基本数据结构的同时对程序员透明,无需进行额外的抽象. Redis运行在内存中 ...
- 【Redis】2. Redis数据类型 String以及key的设置约定
学习资料 https://www.bilibili.com/video/BV1CJ411m7Gc?p=6 数据存储类型介绍 业务数据的特殊性 作为缓存使用 原始业务功能设计 秒杀 618活动 双十一活 ...
- 【Redis】杂项基础知识;Redis数据类型
基础知识 Redis是一个内存数据库, 所有数据基本上都存在于内存当中, 会定时以追加或者快照的方式刷新到硬盘中. 由于redis是一个内存数据库, 所以读取写入的速度是非常快的, 所以经常被用来做数 ...
- Redis-cluster集群【第一篇】:redis安装及redis数据类型
Redis介绍: 一.介绍 redis 是一个开源的.使用C语言编写的.支持网络交互的.可以基于内存也可以持久化的Key-Value数据库. redis的源码非常简单,只要有时间看看谭浩强的C语言,在 ...
- redis数据类型list总结
前言 在上一篇,我们简单介绍了redis数据类型中的String和hash两种常用数据类型的使用,本篇继续探讨redis数据结构中的另一种,list 列表 list简介 Redis列表是简单的字符串列 ...
- Redis 学习---(4)Redis 数据类型
Redis 数据类型 Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). String(字符串) st ...
- Redis数据类型详解(五种)
Redis支持五种数据类型,即string(字符串).hash(哈希).list(列表).set(集合)及zset(sorted set:有序集合),云吞铺子分享Redis数据类型谅解: Redis数 ...
最新文章
- 收集Oracle常用命令----索引及约束
- Java:抽象方法和抽象类,抽象类应用模板方法模式,接口及使用
- springboot @value启动报错_打造一个 Spring Boot 注解启动控制开关
- virtualenv 模块
- Hadoop实战-中高级部分 之 Hadoop 集群安装
- 关于C#中实现两个应用程序消息通讯的问题
- Microsoft规划了.NET的未来发展
- 系统集成项目管理之何为系统集成
- Linux Wps 缺少字体
- 模式识别谱聚类matlab,基因表达谱聚类分析
- 今天给大家推荐一个Cleaner One for mac(系统清理优化工具)
- unity自动生成敌人_unity 2d AI 敌人 自动追踪(2)
- 李维看 .net 和 DELPHI 6 (含李维照片) (转)
- 如何计算CAN总线的负载率以及每帧耗时和每秒最多传输帧数
- synopsys 工具简介
- Python求助攻,哥哥姐姐们帮忙一下,网上下载的这个程序需要什么数据参数读入吗?帮忙写个主程序调用一下SPAC出结果,必有重谢
- QT数据库访问技术简介
- Win 8换徽标全面整合亮点功能大阅兵——乡巴佬下载
- 2.控制结构(选择、循环)
- Ubuntu 20.04 分区方案