Redis数据结构:
string
list
hash
set
zset
Redis底层数据结构:
REDIS_ENCODING_RAW
,字符串REDIS_ENCODING_INT
,整数REDIS_ENCODING_HT
,哈希表REDIS_ENCODING_ZIPMAP
,zipmapREDIS_ENCODING_LINKEDLIST
,双端链表REDIS_ENCODING_ZIPLIST
,压缩列表REDIS_ENCODING_INTSET
,整数集合REDIS_ENCODING_SKIPLIST
, 跳跃表
他们的对应关系是:
|数据结构|底层数据结构|
|-|-|
|string
| REDIS_ENCODING_INT
,REDIS_ENCODING_RAW
|
|list
| REDIS_ENCODING_LINKEDLIST
,REDIS_ENCODING_ZIPLIST
|
|hash
| REDIS_ENCODING_ZIPLIST
,REDIS_ENCODING_HT
|
|set
| REDIS_ENCODING_HT
,REDIS_ENCODING_INTSET
|
|zset
| REDIS_ENCODING_SKIPLIST
,REDIS_ENCODING_ZIPLIST
|
当执行一个处理数据类型的命令时,Redis 执行以下步骤:
- 根据给定key ,在数据库字典中查找和它像对应的redisObject ,如果没找到,就返回NULL 。
- 检查redisObject 的type 属性和执行命令所需的类型是否相符,如果不相符,返回类型错误。
- 根据redisObject 的encoding 属性所指定的编码,选择合适的操作函数来处理底层的数据结构。
- 返回数据结构的操作结果作为命令的返回值。