Redis 对象:集合对象

每种类型的变量至少使用了两种不同的编码

1 五种对象的底层编码:

字符串类型对象:REDIS_ENCODING_INT   REDIS_ENCODING_EMBSTR  REDIS_ENCODING_RAW

列表类型的对象:REDIS_ENCODING_ZIPLIST     REDIS_ENCODING_LINKEDLIST

哈希对象:REDIS_ENCODING_ZIPLIST    REDIS_ENCODING_HT

集合对象:REDIS_ENCODING_INTSET     REDIS_ENCODING_HT

有序集合对象:REDIS_ENCODING_ZIPLIST       REDIS_ENCODING_SKIPLIST

 

集合对象的编码可以是intset 或者 hashtable

A:intset编码的集合对象使用整数集合作为底层实现。

B:hashtable编码的集合对象  使用 字典 作为底层实现,集合元素存储在键对象中,值对象设为null。

 

2  编码转换条件

当  A:每个集合元素都为整数值,且

      B:列表中元素个数小于等于512个

时,会用整数集合实现集合对象。否则采用字典实现集合对象。

API:

SADD

SCARD

SISMEMBER

SMEMBERS

SRANDMEMBER

SPOP

SREM

3  命令在编码上的作用原理

根据2进行推测 

你可能感兴趣的:(中间件,分布式)