redis-对象
redis支持5中数据结构,分别是字符串、列表、集合、有序集合以及哈希表。在不同的场景使用合适的数据结构,会节省很多精力。
redis的对象结构如下
1 | typedef struct redisObject { |
根据type取值不同分为以下5种类型:
OBJ_STRING 字符串
OBJ_LIST 列表
OBJ_SET 结合
OBJ_ZSET 有序集合
OBJ_HASH 哈希表
encoding取值如下:
OBJ_ENCODING_RAW //原始数据
OBJ_ENCODING_INT //整数
OBJ_ENCODING_HT //哈希表
OBJ_ENCODING_ZIPMAP //压缩图
OBJ_ENCODING_LINKEDLIST //链表,以前list的编码形式,现在不用了
OBJ_ENCODING_ZIPLIST //压缩列表
OBJ_ENCODING_INTSET //整形集合
OBJ_ENCODING_SKIPLIST //跳跃表
OBJ_ENCODING_EMBSTR //压缩字符串
OBJ_ENCODING_QUICKLIST //链式的压缩列表
OBJ_ENCODING_STREAM //基数树
总的来说,redis支持五种数据结构,但每种数据结构的实现方式有多种,比如集合可以用数组和哈希表实现,列表可以用压缩列表、快速列表实现
整数集合
数据结构
1 | typedef struct intset { |