• redis sortedSet


    zset 和set 相比:

    zset 类型和set类型一样,不允许有重复的元素。zset是有序的,zset 有一个double类型的分数,这个分数可以重复,zset正是通过这个分数对集合中的元素从小到大排序的。

    zset 和list 相比:

    zset 和list 都是有序的,list是通过在链表实现的,两头取值快,中间取值慢;zet是用哈希表和跳跃表(二叉树)来实现的,两头中间添加删除查找都很快。

    我们可以按照zset 的分数score进行排序和过滤查询


    // 添加元素

    zadd zset 1 c 2 i 5 o 9 p 3 a 

    zadd zset 4 u // 插入元素

    zadd zset 10 c  // 修改元素c的分数为10,返回0,表示没有插入新的元素 ——> zadd key score element,这个命令即可以添加元素,也可以修改已有元素的分数

    zadd zset ch 15 c // 修改元素的分数的15,返回1,表示有一个分数被修改

    zadd zset nx 20 c  // nx 不更新,只添加,如果元素存在,无效

    zadd zset xx 20 c  // xx 只更新,不添加,如果元素不存在,无效

    zadd zset incr 2 c  // 指定元素分数增加2


    查询元素

    zrange zset  0 -1 [withscores]  // 按照下标查询

    zrevrange zset 0 1 [withscores] // 按照下标查询,反序,即最后一个元素的下标是0,倒数第二个元素的下标是1

    zrangebyscore zset 2 4 [withscores]  [LIMIT offset count]    // 按照分数查询

    zrevrangebyscore zset 2 2 [withscores] // 按照分数查询,反序 


    查询分数

    zscore zset y // 返回指定成员的分数


    查询元素索引

    zrank zset p // 返回指定成员的索引,从小到大

    zrevrank zset p // 返回指定成员的索引,从大到小


    查询元素个数

    zcard zset  // 返回元素个数

    zcount zset 1 2  // 返回分数1到2之间的元素个数


    修改分数

    zincrby zset 3 c  // 分数加上3


    删除元素

    zrem zset p // 删除p 元素

    zremrangebyrank zset 4 10  // 根据下标删除元素

    zremrangebyscore zset 4 5  // 根据分数删除元素

  • 相关阅读:
    如何判断哪个方法调用了相同的事件?
    Windows Update问题
    Android学习笔记
    关于官方Reachability Demo理解
    poj 1797 Heavy Transportation
    poj 3013 Big Christmas Tree
    poj 1062 昂贵的聘礼
    poj 3615 Cow Hurdles(floyd)
    CF Planets(STL+ 最短路)
    poj 3026 Borg Maze
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/9560567.html
Copyright © 2020-2023  润新知