redis 的使用 (sort set排序集合类型操作)
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排序集合类型操作)相关推荐
- Redis学习笔记之七:有序集合类型
Redis最后一种类型是有序集合类型ZSet,即排序的Set,但又与Set不同的是,它比Set多一个字段分数(score)用于排序等操作,从这点来看,相当于Java中的TreeMap,但与Java的T ...
- Redis常用命令入门4:集合类型
集合类型 之前我们已经介绍过了最基本的字符串类型.散列类型.列表类型,下面我们一起学习一下集合类型. 集合类型也是体现redis一个比较高价值的一个类型了.因为Redis的集合类型,所以我们可以很容易 ...
- 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. ...
- jav核心(十四):集合类型操作:Collection、List、Set;Map集合;Iterator迭代器
一.java.util.List 1.List总结 List中允许保存重复的数据: List中允许保存多个null: 常用实现类:ArrayList[推荐使用].Vector.LinkedList: ...
- redis有序集合类型sort set
redis的数据类型之-有序集合 sort set和set类型一样,也是string类型元素的集合,也没有重复的元素,不同的是sort set每个元素都会关联一个权,通过权值可以有序的获取集合中的元素 ...
- 15天玩转redis —— 第六篇 有序集合类型
今天我们说一下Redis中最后一个数据类型 "有序集合类型",回首之前学过的几个数据结构,不知道你会不会由衷感叹,开源的世界真好,写这 些代码的好心人真的要一生平安哈,不管我们想没 ...
- [Spring5]IOC容器_Bean管理XML方式_注入集合类型属性
xml注入集合属性 1.注入数组类型属性 2.注入List集合类型属性 3.注入Map集合类型属性 (1)创建类,定义数组,list,map,set类型属性,生成对应set方法 package com ...
- python集合类型的四种操作符_深入解析Python中的集合类型操作符
(1)标准类型操作符(所有的集合类型) 成员关系 (in, not in) 就序列而言,Python中的in和not in操作符决定某个元素是否是一个集合中的成员. 集合等价/不等价 等价/不等价被用 ...
- 自学python系列14:映像,集合类型-集合类型
集合类型 1.1如何创建集合类型和给集合赋值 1.1.1 如何创建集合类型和给集合赋值 集合的工厂方法set()和frozenset() >>> s=set('abc') >& ...
最新文章
- linux 文件服务,Linux操作系统之文件服务(ftp、nfs)
- 设计模式之策略模式和状态模式
- 在HTML中插入JavaScript代码的方式
- 哀悼地震遇难者--5月19至21日为全国哀悼日
- python常用格式化_python的常用三种格式化方法
- 5.3.2 先行发生
- [转载红鱼儿]kbmmw 开发点滴:kbmMW 命名查询(Named Query)
- 团队开发之个人博客一
- RTL8111E datasheet中提到的术语
- wps文档怎样去除广告
- C语言可以应用在哪些领域?
- 神武3进不去 服务器响应,windows7系统玩神武2卡机的解决方法
- tableau货架图制作_Tableau代写制作地图可视化和树形图、条形图
- blender改变物体中心位置
- 【测控电路】滤波电路
- python可以做哪些小工具_python的简单实用小工具
- 疑难杂症:系统状态正常,LInux双机Pacemaker为什么还要切换?
- Java实现导出Excel
- 怎么提高代码质量?-来自Google的研发经验总结
- 动画的html邮件,邮件正文收发Flash动画
热门文章
- jQuery closest()和parent()、parentes()之间的区别
- 如果修改了表结构的话,可能也需要将调用到表的存储过程、函数等也修改一下,以下语句可以查询到那些对象调用到被修改的表...
- 关于可扩展的web架构设计的探索-框架结构的描述文件
- 浅谈自然语言在科技时代的运用
- 【JavaScript】jQuery绑定事件
- Full_of_Boys训练3总结
- Windows 10 开发环境搭建
- Codeforces Round #470 (rated, Div. 2 C. Producing Snow(思维)
- Linux防止ARP攻击的一些方法
- 【29.42%】【POJ 1182】食物链