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"
7.SortSet排序集合类型操作
Sort Set排序集合类型 (1)介绍 和set一样sorted set也是string类型元素的集合,不同的是每个元素都会关联一个权.通过权值可以有序的获取集合中的元素 该Sort Set类型适合 ...
Redis ---------- Sort Set排序集合类型
sortset是(list)和(set)的集中体现 与set的相同点: string类型元素的集合 不同点: sortset的元素:值+权 适合场合 获得最热门前5个帖子的信息 例如 select * ...
Redis自学笔记:3.5入门-集合类型
3.5集合类型 3.5.1介绍 在集合中的每个元素都是不同的,且没有顺序 表3-4集合类型和列表类型的对比 - 集合类型 列表类型 存储内容 至多232-1个字符串 至多232-1个字符串 有序性 否 ...
Redis常用命令入门4:集合类型
集合类型 之前我们已经介绍过了最基本的字符串类型.散列类型.列表类型,下面我们一起学习一下集合类型. 集合类型也是体现redis一个比较高价值的一个类型了.因为Redis的集合类型,所以我们可以很容易 ...
redis 的使用 ( set集合类型操作)
set 集合类型 释义: redis 的 set 是 string 类型的无序集合 set 元素最大可以包含(2的32次方-1)个元素 关于 set 集合类型除了基本的添加删除操 ...
6.Set集合类型操作使用
Set集合类型 (1)介绍 redis的set是string类型的无序集合set元素最大可以包含(2的32次方-1)个元素关于set集合类型除了基本的添加删除操作,其它有用的操作还包含集合的取并集(u ...
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. ...
Python set集合类型操作总结
Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替) 小例子 1.如果我要在许多列表中找出相同的项,那么用集合是 ...
8.Hash集合类型操作使用
数据类型Hash (1)介绍 hash数据类型存储的数据与mysql数据库中存储的一条记录极为相似 Redis本身就类似于Hash的存储结构,分为key-value键值对,实际上它的Hash数据就好像 ...
随机推荐
PhpStorm Git 配置(解决文件没有变色的问题)
摘要: PhpStorm Git 配置 首先需要安装windows下的Git版本,网上有很多我下载的是msysgit反正都差不多,不会的自己百度. 其次打开PhpStorm,点击File ,Setti ...
tesseract-ocr
tesseract-ocr 第一课 前言 据网上介绍tesseract-ocr性能不错,并且可以支持识别中文了.于是尝试一下. 安装 1.下载地址: https://code.google.com ...
ecshop Admin后台商品列表处(上架、下架、精品...取消精品)增加操作
相关文件:goods.php,goods_list.htm 思路: a.增添连接“转移仓库” b.在goods.php,读取仓库列表数据,并且实例化 c. 在goods_list.htm循环数据.点击 ...
WCF学习心得------(二)设计和实现服务协定
设计和实现服务协定 创建服务协定—WCF术语 消息 消息是一个独立的数据单元,它可能由几个部分组成,包括消息正文和消息头. 服务 服务是一个构造,它公开一个或多个终结点,其中每个终结点都公开一个或多个 ...
用SQL替换最后一个指定字符后面的所有字符
下面给出任意字符串,该字符串长度未定,只知道该字符串有许多个‘-’连接起来的,现在要把最后一个‘-’后面的字符替换掉为指定串. 假如字符串为:'x1253-axebx-xcdx-o9kgl-3ddll ...
install plugin group_replication ERROR 1126 (HY000)
在给MySQL安装插件的时候,你可能会遇到如题所示的报错. 更详细的错误输出如下: mysql> INSTALL PLUGIN group_replication SONAME 'group_r ...
iOS 动画篇 (三) CADisplayLink与CoreGraphics实现动画
本文主要介绍利用CoreGraphics和CADisplayLink来实现一个注水动画.来一个效果图先: 在介绍注水动画前,先介绍利用CoreGraphics实现进度条的绘制. 一.扇形进度绘制 效果 ...
Unity5 BakeGI(Mixed Lighting)小记
1.模型需勾选Generate Lightmap UVs,否则烘培图像撕裂. 2.关于为何新版的改叫Mixed Lighting,猜测是之前属于全部烘培,现在算是部分烘培,实时阴影和烘培阴影可以混用, ...
gpg: no valid OpenPGP data found. 解决办法
在Ubuntu14.04 server(amd64)上面安装ros,运行命令 wget http://packages.ros.org/ros.key -O - | sudo apt-key add ...
描边shader(法线外拓)
描边的思路是需要两个pass.第一个pass让顶点沿着法线方向延伸出去,使得模型变大一圈.第二个pass正常渲染,让正常渲染的模型挡在第一个pass之上,这样就会露出延伸出去的部分,延伸出去的就是我们 ...