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. 使用Pechkin将HTML网页转换为PDF

    Pechkin开源组件使用wkhtmlbox,可以解析CSS样式,将网页转换为PDF文件, 支持URL,或者HTML字符串 1, 从NuGet程序管理器中获得Pechkin  GlobalConfig ...

  2. 机器学习的Spark与Scala开发简介

     一.机器学习常用开发软件:Spark.Scala 1. Spark简介: MLlib包含的库文件有: 分类 降维 回归 聚类 推荐系统 自然语言处理 在线学习 统计学习方法:偏向理论性,数理统计的方 ...

  3. 2440裸机驱动之PWM开发

    原文http://blog.chinaunix.net/uid-14114479-id-3125685.html ARM驱动蜂鸣器的方式有两种:一种是PWM输出口直接驱动,另一种是利用IO定时翻转电平 ...

  4. RSA算法优化

    RSA算法优化 大数乘法 模乗优化 剩余定理(孙子定理) RSA加解密 python的RSA计算优化 #-*- coding: utf-8 -*- ''' /********************* ...

  5. 编程利用利用curses库编程开始

    时间紧张,先记一笔,后续优化与完善. curses库常用函数: 注意编译时要用这样的格式:gcc xxx.c -l curses -o xxx 第一个小例子: include <stdio.h& ...

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

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

  7. ClassLoader的类结构分析

    摘自深入分析java web技术内幕

  8. PHP常用之封装分页工具类

    分页基本上是每个项目都会使用到的,所以呢,把它封装成一个工具类,以后直接调用就可以了(虽然TP框架的灰常强大,但是自己封一个也未尝不可.),这样既省时又省力还赚'工分'. 我封的这个分页工具类还比较完 ...

  9. 【CSS学习】字符实体

    在html开发中,有一些字符,不适于直接写出,比如:大于号>小于号<<br />一般格式:&+实体名+;实体有很多,记住常用的大于号>小于号<双引号&quo ...

  10. Perf 简介

    Perf 是用来进行软件性能分析的工具. 通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计.它不但可以分析指定应用程序的性能问题 (per thread),也 ...