ToB企服应用市场:ToB评测及商务社交产业平台

标题: Redis 原理 - Set [打印本页]

作者: 我可以不吃啊    时间: 2022-8-20 08:32
标题: Redis 原理 - Set
Set数据结构

intset 图解
  1. //intset 的编码方式
  2. #define INTSET_ENC_INT16 (sizeof(int16_t))
  3. #define INTSET_ENC_INT32 (sizeof(int32_t))
  4. #define INTSET_ENC_INT64 (sizeof(int64_t))
  5. typedef struct intset {
  6.     uint32_t encoding; // 编码方式
  7.     uint32_t length; // 集合包含的元素数量
  8.     int8_t contents[]; // 保存元素的数组
  9. } intset;
复制代码

可以看到 intset 很简单, 基本和普通数组差不多
另外, 当使用 intset 编码时,数据是有序的。
intset 演示:
  1. 127.0.0.1:6379> SADD nums 5 8 1 9 0
  2. (integer) 5
  3. 127.0.0.1:6379> OBJECT ENCODING nums
  4. "intset"
  5. 127.0.0.1:6379> SMEMBERS nums
  6. 1) "0"
  7. 2) "1"
  8. 3) "5"
  9. 4) "8"
  10. 5) "9"
复制代码
hashtable 图解

hashtable 演示:
  1. 127.0.0.1:6379> SADD data a b c d e f
  2. (integer) 6
  3. 127.0.0.1:6379> OBJECT ENCODING data
  4. "hashtable"
  5. 127.0.0.1:6379> SMEMBERS data
  6. 1) "c"
  7. 2) "b"
  8. 3) "a"
  9. 4) "e"
  10. 5) "d"
  11. 6) "f"
复制代码
Set常用的命令


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4