Sort Set排序集合类型

(1)介绍
和set一样sorted set也是string类型元素的集合,
不同的是每个元素都会关联一个权。
通过权值可以有序的获取集合中的元素


该Sort Set类型适合场合:
获得热门帖子(回复量)信息:select * from message order by backnum desc linit 5;
(以上需求可以通过简单sql语句实现,但是sql语句比较耗费数据库资源)

(1)操作
zadd key score member            添加元素到集合,元素在集合中存在则更新对应score
zrem key member                  删除指定元素,1表示成功,如果元素不存在返回0
zincrby key incr member          按照incr幅度增加对应member的score值,返回score值
zrank key member                 返回指定元素在集合中的排名(下标),集合中元素是按score从小到大排序的
zrevrank key member              同上,但是集合中元素是按score从大到小排序
zrange key start end             类似lrange操作是从集合中去指定区间的元素。返回的是有序的结果
zrevrange key start end          同上,返回结果是按score逆序的
zcard key                        返回集合中元素个数
zscore key element               返回给定元素对应的score
zremrangebyrank key min max      删除集合中排名在给定区间的元素(权值从小到大排序)


(3)模拟

我们模拟帖子信息,将点击量比较高的帖子信息存储起来,看看是否
自动进行了排序。

我们只做一个sort set排序集合,里面只保留5个元素信息,该5个元素是回复
量最高的帖子。每个帖子被回复的时候,都有机会进入该集合里面,但是只有
回复量高的前五个帖子会存在于该集合,回复量低的就被删除。

创建一个sort set排序集合hotmessage的key,内部有5个元素:


然后第六个帖子的信息加入集合:


我们按照权值从大到小逆序排序显示一下我们的数据:


我们要删除回复量最低的数据(从小到大的排序后,删除区间为0到0的元素,也就是0本身)

可以看到之前排序权值最小的14被删除了

想查看某一个权值数据的排名(zrank从小到大,zrevrank从大到小),使用zrank指令


zcard指令可以返回SortSet集合中的元素个数


zincrby指令增加某个权值下的数值,我们给权值11的数据加200,

可以看到最后从大到小排行,11变成了数值最大的,排名第一了

最后,想查看某个权值对应的数据值,使用zscore就可以了:


总结:
关于重复元素:
Set类型:没有
List链表类型:有

Sort Set类型:没有

转载请注明出处:http://blog.csdn.net/acmman/article/details/53301535

Redis6-sorted set 的介绍的更多相关文章

  1. redis数据类型之—Sorted set

    (1)sorted set 简单介绍 有序集合,在集合类型的基础上为集合中的每个元素都关联了一个分数,这样可以很方便的获得分数最高的N个元素. (2)sorted set 常用命令

  2. python sorted排序用法详解

    sorted排序 python sorted 排序 1. operator函数在介绍sorted函数之前需要了解一下operator函数. operator函数是python的内置函数,提供了一系列常 ...

  3. LeetCode Search in Rotated Sorted Array II -- 有重复的旋转序列搜索

    Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would this ...

  4. 【LeetCode】Search in Rotated Sorted Array II(转)

    原文链接 http://oj.leetcode.com/problems/search-in-rotated-sorted-array-ii/ http://blog.csdn.net/linhuan ...

  5. python3排序 sorted(key=lambda)--实现对字典按value值排序

    使用python对列表(list)进行排序,说简单也简单,说复杂也复杂,我一开始学的时候也搞不懂在说什么,只能搜索一些英文文章看看讲解,现在积累了一些经验,写在这里跟大家分享, 1.sorted函数首 ...

  6. Redis之面试连环炮

    目录 1.简单介绍一下Redis 2.分布式缓存常见的技术选型方案有哪些? 3.Redis和Memcached的区别和共同点 4. 缓存数据的处理流程是怎样的? 5. 为什么要用 Redis/为什么要 ...

  7. Redis基础及其相关面试题

    Redis持久化 一.持久化简介 Redis 的数据 全部存储 在 内存 中,如果 突然宕机,数据就会全部丢失,因此必须有一套机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis ...

  8. Redis系列(2)之数据类型

    Redis系列(2)之数据类型 <Redis系列(1)之安装>中介绍了Redis支持以下几种数据类型,那么本节主要介绍学习下这几种数据类型的基本操作 字符串类型,string 散列类型,h ...

  9. 使用python的一些笔记

    语法 传值与传引用 Python参数传递采用的是"传对象引用"的方式.这种方式相当于传值和传引用的一种综合. 如果函数收到的是一个可变对象(比如字典或者列表)的引用,就能修改对象的 ...

  10. python 对字典分别按照key值、value值进行排序

    1.sorted函数首先介绍sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数. 其中iterable表示 ...

随机推荐

  1. 基于Log4net插件

    基本代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using log ...

  2. [置顶] ROS探索总结(十一)——机器视觉

    机器视觉在计算机时代已经越来越流行,摄像头价格越来越低廉,部分集成深度传感器的混合型传感器也逐渐在研究领域普及,例如微软推出的Kinect,而且与之配套的软件功能十分强大,为开发带来了极大的便利.RO ...

  3. CPU内存管理和linux内存分页机制

    一.概念 物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应.——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理 ...

  4. DOM节点删除之empty和remove

    DOM节点删除之empty和remove 刚学了新知识,虽然是一个小知识点,但还是忍不住想和大家分享. .empty()是指对该节点后代的删除,结果是清空该节点(该节点里面已无元素). .remove ...

  5. jquery表格提交验证

    在表格中的验证 1.body中的内容 <form action="http://www.qq.com" id="form1"><table w ...

  6. C语言之形参和实参

    一 形参与实参 1).定义 形参:形式参数. 就是定义函数的时候,写在函数名小括号后面的参数叫形参 实参:实际参数. 就是调用函数的时候,调用函数时写在函数名小括号后面的参数就叫实参 2).注意项 a ...

  7. Java重写与重载之间的区别

    重写(Override) 重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变.即外壳不变,核心重写! 重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类 ...

  8. Xpath学习笔记

    最近复习自己上一年的课本,想起来刚学那个时候想做一个写日记的软件. 想不如做,用控制台瞎写了一个,一做就成了,没什么bug,期间使用Xpath来读数据,所以就稍微学了一下. 学习过程就这样做一点笔记, ...

  9. Node.js 使用gm处理图像

    现要对之前的文件服务器进行扩展,听网上说gm处理图像来一套一套的.so决定使用该工具去实现文件服务器的图片处理这块.目标有下现在通过参数去获得缩略图http://xxx.xxx.com/image/2 ...

  10. Oracle SQL 基本操作之 用户权限管理方法

     Oracle SQL 基本操作之 用户权限管理方法 最近把有关用户操作和权限管理的东西整理了一下,虽然不少博客都有过类似的整理,但是自己发现他们的内容或多或少都有些错误.于是,本人亲自对每条语句进行 ...