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"

redis 的使用 (sort set排序集合类型操作)的更多相关文章

  1. 7.SortSet排序集合类型操作

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

  2. Redis ---------- Sort Set排序集合类型

    sortset是(list)和(set)的集中体现 与set的相同点: string类型元素的集合 不同点: sortset的元素:值+权 适合场合 获得最热门前5个帖子的信息 例如 select * ...

  3. Redis自学笔记:3.5入门-集合类型

    3.5集合类型 3.5.1介绍 在集合中的每个元素都是不同的,且没有顺序 表3-4集合类型和列表类型的对比 - 集合类型 列表类型 存储内容 至多232-1个字符串 至多232-1个字符串 有序性 否 ...

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

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

  5. redis 的使用 ( set集合类型操作)

    set 集合类型 释义:            redis 的 set 是 string 类型的无序集合 set 元素最大可以包含(2的32次方-1)个元素 关于 set 集合类型除了基本的添加删除操 ...

  6. 6.Set集合类型操作使用

    Set集合类型 (1)介绍 redis的set是string类型的无序集合set元素最大可以包含(2的32次方-1)个元素关于set集合类型除了基本的添加删除操作,其它有用的操作还包含集合的取并集(u ...

  7. 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. ...

  8. Python set集合类型操作总结

    Python中除了字典,列表,元组还有一个非常好用的数据结构,那就是set了,灵活的运用set可以减去不少的操作(虽然set可以用列表代替) 小例子 1.如果我要在许多列表中找出相同的项,那么用集合是 ...

  9. 8.Hash集合类型操作使用

    数据类型Hash (1)介绍 hash数据类型存储的数据与mysql数据库中存储的一条记录极为相似 Redis本身就类似于Hash的存储结构,分为key-value键值对,实际上它的Hash数据就好像 ...

随机推荐

  1. 【leetcode】Longest Consecutive Sequence(hard)☆

    Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...

  2. 【数据结构】红黑树 C语言代码

    连看带写花了三天,中途被指针引用搞得晕晕乎乎的. 插入和删除的调整过程没有看原理,只看了方法,直接照着写的. 看了两份资料,一份是算法导论第12-13章, 另一份是网上的资料http://blog.c ...

  3. iOS 日常工作之常用宏定义大全

    转自:http://www.jianshu.com/p/213b3b96cafe 前言: 在工作中, 很多小伙伴都会在PCH文件定义一些常用的宏,但是又怕写这些简单的宏浪费时间,又有时候忘记怎么定义了 ...

  4. October 2nd 2016 Week 41st Sunday

    The road to success is lined with many tempting parking spaces. 通往成功的路边充斥着许多诱人的休息区. Exhausted, I thi ...

  5. July 3rd, Week 28th Sunday, 2016

    2016-07-03 First-hand experience is often necessary for personal growth. 亲身体验通常是成长所必须的. Although som ...

  6. c#三层架构登陆实例

    很早之前,就听说过三层结构了.当时只知道 三层结构 是把 系统的 界面  跟 数据库操作等不相关的程序分别开来.原来这么简单的实现,确实传说中的 三层结构啊. 首先,先来看一下是哪三层.表示层(UI, ...

  7. 求n阶方阵的值(递归)

    若有n*n阶行列式A,则: |A|=A[1][1]*M[1][1]+A[1][2]*M[1][2]+...A[1][n]*M[1][n]:其中M[1][i] 表示原矩阵元素A[1][i]的代数余子式: ...

  8. window 环境安装MongoDB

    强制安装mongodb服务 命令 sc create MongoDB binPath= "D:\MongoDB\Server\3.2\bin\mongod.exe --service --d ...

  9. php PDO:数据访问抽象层

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. asmlinkage

    转自:http://www.cnblogs.com/china_blue/archive/2010/01/15/1648523.html 声明,仅为了便于自己记忆和查询,非原创,摘自:http://b ...