Redis的ziplist是一个紧凑的字节数组结构,每个元素之间都是紧挨着。 ![[Snipaste_2023-02-24_14-42-21 1.png]] + 如果存储的是hash结构,那么key和value会作为两个entry被相邻存储 + 如果是zset,value和score会作为两个entry被相邻存储 + 如果set里存储的是字符串,那么sadd会升级为hashtable结构(HashSet) # 存储界限 当集合对象的元素不断增加,或者某个value值过大,这种小对象存储也会被升级为标准结构 | 序号 | 规则 | | ---- | ------------------------------------- | | 1 | hash的元素个数超过512 | | 2 | hash的任意元素的key/value的长度超过64 | | 3 | list 的元素个数超过512 | | 4 | list的任意元素的长度超过64 | | 5 | zset 的元素个数超过128 | | 6 | zset的任意元素的长度超过64 | | 7 | set 的整数元素个数超过512 |