Redis---set

最多存储2^32-1个元素,支持取交集、并集、差集

内部编码:

  1. 整数集合(intset)
    1.  typedef struct intset{
       uint32_t encoding;   --- 编码类型(int8_t, int16_t...)
       uint32_t length;     --- 元素个数
       int8_t contents[];   --- 可能不是int8_t,由encoding指定
      } intset;

      适用于集合都是整数,且数量较小的情况。复杂度从O(1)变为O(n)。 优势在于集中存储,节省空间。

  2. 哈希表(hashtable)
    1. 集合在使用hash表时,value都是null

编码转换:

使用整数集合条件:

  • 集合中元素数量小于512
  • 集合中元素都是整数值

猜你喜欢

转载自www.cnblogs.com/crossdunk/p/12938059.html