sort set排序集合类型

释义:

sort set 是 string 类型的集合

sort set 的每个元素 都会关联一个 权

通过 权值 可以有序的获取集合中的元素

应用场合:

获取热门帖子(回复量)信息:

select * from message order by backnum desc limit 5;

// 利用 sort set 实现最热门的前 5 贴信息

帖子id            回复量(万条)

11                102
        12                 141
        13                 12
        14                 651
        15                 131
        16                 256
        17                 341
        18                 79
        19                 461
        20                 101

排序集合中额每个元素都是 值 权 的组合

sort set 排序集合

值|权     11|121     22|484    33|1089

sort set 类型操作

注意:

权 score

值 member

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

从集合中去掉指定区间的元素 返回 按 score 有序结果

zrevrange key start end

从集合中去掉指定区间的元素 返回 按 score 逆序的

zcard key

返回集合中元素个数

zscore key element

返回 给定元素 对应的 score

zremrangebyrank key min max

删除集合中排名在给定区间的元素 (权值有小到大排序)

eg:

sort set 排序集合 里面只有5个元素信息,

该5个元素是回复量最高每个帖子被回复的时候,

就有机会进入该集合里面

但是 只有回复量最高的前5个帖子会存在于集合中

回复量低的时候就被删除

// 创建一个 sort set 排序集合

// hostmessage 为 key, 内部有5个元素

zadd hostmasssge 102 11 // (integer) 1
    
    zadd hostmasssge 122 12 // (integer) 1
    
    zadd hostmasssge 142 13 // (integer) 1
    
    zadd hostmasssge 162 14 // (integer) 1
    
    zadd hostmasssge 182 15 // (integer) 1

// 给集合每增加一个新元素 就把权值(回复值)最低的那个元素删掉

// 每增加一个新元素 就删除一个旧元素

/*************************************/

// 第六个元素生成

zadd hostmasssge 116 16 // (integer) 1

// 按 权 -> score 逆序的排列

zrevrange hostmassage 0 100

//返回结果如下 (展示数据为:值)

// 1) "15"

// 2) "14"

// 3) "13"

// 4) "12"

// 5) "16"

// 6) "11"

// 删除 集合中排名在给定区间的元素 (权值有小到大排序)

// 删除 权 较小的数据 剩余5条

zremrangebyrank hostmassage 0 0

zrevrange hostmassage 0 100

//返回结果如下 (展示数据为:值)

// 1) "15"

// 2) "14"

// 3) "13"

// 4) "12"

// 5) "16"

/*********************************/

// 返回指定元素在集合中的排名(下标),

zrank hostmassage 15 // (integer) 4

zrank hostmassage 16 // (integer) 0

// 返回 集合中的元素的个数

zcard hostmessage

// (integer) 5

// 根据 值 返回 权(回复量)

zscore hostmessage 15

// 返回 "182"

// 给指定的元素值 增加一些权信息

zincarby hostmessage 200 14

// 返回 "362"

zrevrange hostmessage 0 100

// 返回结果如下 (展示数据为:值)

// 1) "14"

// 2) "15"

// 3) "13"

// 4) "12"

// 5) "16"

转载于:https://www.cnblogs.com/laowenBlog/p/5444690.html

redis 的使用 (sort set排序集合类型操作)相关推荐

  1. Redis学习笔记之七:有序集合类型

    Redis最后一种类型是有序集合类型ZSet,即排序的Set,但又与Set不同的是,它比Set多一个字段分数(score)用于排序等操作,从这点来看,相当于Java中的TreeMap,但与Java的T ...

  2. Redis常用命令入门4:集合类型

    集合类型 之前我们已经介绍过了最基本的字符串类型.散列类型.列表类型,下面我们一起学习一下集合类型. 集合类型也是体现redis一个比较高价值的一个类型了.因为Redis的集合类型,所以我们可以很容易 ...

  3. Redis 常用命令学四:集合类型命令

    1.增加和删除命令 127.0.0.1:6379> SADD st a (integer) 1 127.0.0.1:6379> SADD st r f g (integer) 3 127. ...

  4. jav核心(十四):集合类型操作:Collection、List、Set;Map集合;Iterator迭代器

    一.java.util.List 1.List总结 List中允许保存重复的数据: List中允许保存多个null: 常用实现类:ArrayList[推荐使用].Vector.LinkedList: ...

  5. redis有序集合类型sort set

    redis的数据类型之-有序集合 sort set和set类型一样,也是string类型元素的集合,也没有重复的元素,不同的是sort set每个元素都会关联一个权,通过权值可以有序的获取集合中的元素 ...

  6. 15天玩转redis —— 第六篇 有序集合类型

    今天我们说一下Redis中最后一个数据类型 "有序集合类型",回首之前学过的几个数据结构,不知道你会不会由衷感叹,开源的世界真好,写这 些代码的好心人真的要一生平安哈,不管我们想没 ...

  7. [Spring5]IOC容器_Bean管理XML方式_注入集合类型属性

    xml注入集合属性 1.注入数组类型属性 2.注入List集合类型属性 3.注入Map集合类型属性 (1)创建类,定义数组,list,map,set类型属性,生成对应set方法 package com ...

  8. python集合类型的四种操作符_深入解析Python中的集合类型操作符

    (1)标准类型操作符(所有的集合类型) 成员关系 (in, not in) 就序列而言,Python中的in和not in操作符决定某个元素是否是一个集合中的成员. 集合等价/不等价 等价/不等价被用 ...

  9. 自学python系列14:映像,集合类型-集合类型

    集合类型 1.1如何创建集合类型和给集合赋值 1.1.1 如何创建集合类型和给集合赋值 集合的工厂方法set()和frozenset() >>> s=set('abc') >& ...

最新文章

  1. linux 文件服务,Linux操作系统之文件服务(ftp、nfs)
  2. 设计模式之策略模式和状态模式
  3. 在HTML中插入JavaScript代码的方式
  4. 哀悼地震遇难者--5月19至21日为全国哀悼日
  5. python常用格式化_python的常用三种格式化方法
  6. 5.3.2 先行发生
  7. [转载红鱼儿]kbmmw 开发点滴:kbmMW 命名查询(Named Query)
  8. 团队开发之个人博客一
  9. RTL8111E datasheet中提到的术语
  10. wps文档怎样去除广告
  11. C语言可以应用在哪些领域?
  12. 神武3进不去 服务器响应,windows7系统玩神武2卡机的解决方法
  13. tableau货架图制作_Tableau代写制作地图可视化和树形图、条形图
  14. blender改变物体中心位置
  15. 【测控电路】滤波电路
  16. python可以做哪些小工具_python的简单实用小工具
  17. 疑难杂症:系统状态正常,LInux双机Pacemaker为什么还要切换?
  18. Java实现导出Excel
  19. 怎么提高代码质量?-来自Google的研发经验总结
  20. 动画的html邮件,邮件正文收发Flash动画

热门文章

  1. jQuery closest()和parent()、parentes()之间的区别
  2. 如果修改了表结构的话,可能也需要将调用到表的存储过程、函数等也修改一下,以下语句可以查询到那些对象调用到被修改的表...
  3. 关于可扩展的web架构设计的探索-框架结构的描述文件
  4. 浅谈自然语言在科技时代的运用
  5. 【JavaScript】jQuery绑定事件
  6. Full_of_Boys训练3总结
  7. Windows 10 开发环境搭建
  8. Codeforces Round #470 (rated, Div. 2 C. Producing Snow(思维)
  9. Linux防止ARP攻击的一些方法
  10. 【29.42%】【POJ 1182】食物链