Redis有序集合zset知识点有哪些

Redis有序集合zset知识点有哪些

redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。
不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分
到较高分的方式排序集合中的成员。
集合的成员是少数的,但是评分是可以重复的。
因为元素是有序的,所以你可以很快的根据评分(score)或者次序(position)来获取一个范围的元
素。
访问有序集合中的中间元素也是非常快的,因为你能够使用有序集合作为一个没有重复成员你的智能列
表。
zadd:添加元素
Redis有序集合zset知识点有哪些
zrange:score升序,获取指定索引范围的元素
返回存储在有序集合 key 中的指定范围的元素。 返回的元素可以认为是按score从最低到最
高排列,如果得分相同,将按字典排序。
下标参数 start 和 s较好 都以 0 为底,也就是说,以 0 表示有序集名列前茅个成员,以 1 表
示有序集第二个成员,以此类推。
你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
zrange key 0 -1:可以获取所有元素
withscores:让成员和它的 score 值一并返回,返回列表以 value1,score1, …, valueN,scoreN 的格式表示
可用版本:

= 1.2.0
时间复杂度:
O(log(N)+M), N 为有序集的基数,而 M 为结果集的基数。
返回值:
指定区间内,带有 score 值(可选)的有序集成员的列表
Redis有序集合zset知识点有哪些
zrevrange:score降序,获取指定索引范围的元素
返回存储在有序集合 key 中的指定范围的元素。 返回的元素可以认为是按score较高到最低
排列, 如果得分相同,将按字典排序。
下标参数 start 和 s较好 都以 0 为底,也就是说,以 0 表示有序集名列前茅个成员,以 1 表
示有序集第二个成员,以此类推。
你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
withscores:让成员和它的 score 值一并返回,返回列表以 value1,score1, …, valueN,scoreN 的格式表示
Redis有序集合zset知识点有哪些

zrangebyscore:按照score升序,返回指定score范围内的数据
Redis有序集合zset知识点有哪些
zincrby:为指定元素的score加上指定的增量
Redis有序集合zset知识点有哪些zrem:删除集合中多个元素
Redis有序集合zset知识点有哪些
zremrangebyrank:根据索引范围删除元素
Redis有序集合zset知识点有哪些
zremrangebyscore:根据score的范围删除元素
Redis有序集合zset知识点有哪些
zcount:统计指定score范围内元素的个数
Redis有序集合zset知识点有哪些
zrank:按照score升序,返回某个元素在集合中的排名

Redis有序集合zset知识点有哪些
zrevrank:按照score降序,返回某个元素在集合中的排名
Redis有序集合zset知识点有哪些
zscore:返回集合中指定元素的score

Redis有序集合zset知识点有哪些
数据结构
SortedSet(zset)是redis提供的一个非常特别的数据结构,内部使用到了2种数据结构。
1、hash表
类似于java中的Map<String,score>,key为集合中的元素,value为元素对应的score,可以用来快速定
位元素定义的score,时间复杂度为O(1)
2、跳表
跳表(skiplist)是一个非常优异的数据结构,实现简单,插入、删除、查找的复杂度均为O(logN)。
类似java中的ConcurrentSkipListSet,根据score的值排序后生成的一个跳表,可以快速按照位置的顺
序或者score的顺序查询元素。

以上就是“Redis有序集合zset知识点有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

文章标题:Redis有序集合zset知识点有哪些,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/27587

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月21日 上午12:03
下一篇 2022年9月21日 上午12:04

相关推荐

  • 电脑出现0x0000007b如何解决

    解决方法: 方法一: 1、很可能是更新了错误的显卡驱动,出现错误代码后先重启电脑。 2、随后按下“F8”进入安全模式选择界面,选择“最近一次的正确配置”就能进入系统了。 3、这样可以解决应用程序冲突问题,如果无法解决,那么可以尝试更改硬盘启动模式。 方法二: 1、首先重启电脑,然后使用热键进入bio…

    2022年9月18日
    62000
  • mysql的timestamp存在的时区问题怎么解决

    简介 众所周知,mysql中有两个时间类型,timestamp与datetime,但当在网上搜索timestamp与datetime区别时,会发现网上有不少与时区有关的完全相反的结论,主要两种: timestamp没有时区问题,而datetime有时区问题,原因是timestamp是以UTC格式存储…

    2022年9月6日
    1.8K00
  • C语言内存分配函数被污染的示例分析

    1、被污染的内存分配 C 语言的内存分配函数包括 malloc()、 kmalloc 、 smalloc()、 xmalloc()、realloc()、 calloc()、 GlobalAlloc()、 HeapAlloc()等等,以 malloc()为例, malloc() 函数的原型为: ext…

    2022年9月20日
    58100
  • python标准库模块之json库怎么使用

    前言 json,全称为JavaScript Object Notation,也就是JavaScript对象标记,通过对象和数组的组合表示数据,虽然构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式。 作用 主要用于将python对象编码为json格式输出或存储,以及将json格式对象解码为py…

    2022年9月21日
    84000
  • mysql的2002错误怎么解决

    在mysql中,2022错误指的是编译的时候没有指定socket,所以mysql命令连接的时候还是使用的默认值,因为socket位置变了,而mysql命令不知道,所以就出现了这样的错误,可以修改“/etc/my.cnf”文件来解决该错误。 本教程操作环境:windows10系统、mysql8.0.2…

    2022年9月1日
    1.2K00
  • win8如何取消开机启动项

    win8取消开机启动项的方法 1、 点击电脑开始键,找到设置。 2、点击应用选项。 3、点进去之后这里有一个启动,点进去。 4、想要关闭的应用,这里点击后面的关闭就可以了。 关于“win8如何取消开机启动项”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频…

    2022年9月24日
    63200
  • php进程通信之信号量的用途是什么

    常见进程通信方式 一些理论基础 临界资源:每次仅允许一个进程访问的资源。 临界区:每个进程中访问临界资源的那段代码叫临界区 所谓临界区(也称为临界段)就是访问和操作共享数据的代码段。 进程互斥:两个或以上的进程不能同时进入关于同一组共享变量的临界区域,即一个进程正在访问临界资源,另一个进程要想访问必…

    2022年9月2日
    51800
  • mysql远程连接不上怎么解决

    解决方法:1、利用“select host,user from user;”查看root用户的可连接权限主机范围;2、利用“update user set host=‘%’ where user=‘root’;”修改root用户的修改权限的主机范围是任一主机;3、利用“systemctl resta…

    2022年9月16日
    1.7K00
  • vlookup函数条件怎么填写

    vlookup函数条件填写方法 1、名列前茅个条件,选择需要查找的单元格,这里为“张三” 2、第二个条件,选中需要查找内容的列。 3、第三个条件,查看所需查找内容在第几列,这里工资在第三列,所以填“3” 4、第四个条件,如果要查找精确数据,就选择“0”,要模糊查找就用“1” 5、最后按下回车,就可以…

    2022年9月22日
    2.5K00
  • html有哪些常用的结构元素

    html常用的结构元素有:1、div,可定义文档中的分区或节,用于为HTML文档内大块(block-level)的内容提供结构和背景;2、section,表示文档中的一个区域;3、article,表示文档、页面、应用或网站中的独立结构,其意在成为可独立分配的或可复用的结构;4、aside,表示一个和…

    2022年9月16日
    69500
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部