zoukankan      html  css  js  c++  java
  • Redis 高级数据结构:七、有序集合对象

    概述###

    有序集合是ziplist或者skiplist
    ziplist就是压缩列表,ZADD时 就根据分值来排序
    skiplist会复杂一些,他的底层有两个数据结构,一个是跳跃表,一个是字典

    typedef struct zset{
        zskiplist *zsl;
        dict *dict
        ...
    }
    

    dict的作用是定义key和score的关系。两个结构都保存了所有元素,对范围操作和根据key定位分值这种操作就互相提供支持了,典型的空间换时间的思想。

    ziplist的使用条件:
    元素数量小于128个;
    所有元素成员长度都小于64字节;
    skiplist的使用条件:
    不满足上面的条件

    上面两个值可以通过参数来改变
    zset-max-ziplist-entries
    zset-max-ziplist-value

    一些命令###

    命令 作用
    ZADD 添加 成员和分值
    ZCARD 返回成员数量
    ZCOUNT 返回分值范围内的节点数量
    ZRANGE 从头向尾遍历 返回索引范围内数据
    ZREVRANGE 从尾向头遍历 返回索引范围内数据
    ZRANK 从头向尾遍历,返回给定成员分值排名
    ZREVRANK 从尾向头遍历,返回给定成员分值排名
    ZREM 删除成员
    ZSCORE 返回指定成员分数
  • 相关阅读:
    RSA算法
    本地CodeForces
    基于Giolite 多人开发
    DES算法
    MD5算法
    仓库库存管理系统(C+MySQL+ODBC)
    Spring源码解析(一)开篇
    JDK动态代理实现源码分析
    J.U.C Atomic(一)CAS原理
    JDK 注解详解
  • 原文地址:https://www.cnblogs.com/june777/p/11912196.html
Copyright © 2011-2022 走看看