Redis源码解析(四):redis之数据类型哈希表、列表、集合和有序集合
2015-04-14 23:18
696 查看
哈希表也是redis支持的数据结构之一,它使用REDIS_ENCODING_ZIPLIST(压缩列表) 和REDIS_ENCODING_HT(数据字典) 两种编码方式。
当哈希表使用压缩列表时,它使用如下的结构存储数据(详见ziplist.c):
+---------+------+------+------+------+------+------+------+------+---------+
| ZIPLIST | | | | | | | | | ZIPLIST |
| ENTRY | key1 | val1 | key2 | val2 | ... | ... | keyN | valN | ENTRY |
| HEAD | | | | | | | | | END |
+---------+------+------+------+------+------+------+------+------+---------+
当哈希表使用数据字典时,它使用如下的结构存储数据(详见dict.c).
列表也是redis支持的数据结构之一,它使用REDIS_ENCODING_ZIPLIST(压缩列表) 和REDIS_ENCODING_LINKEDLIST (双端列表)这两种方式编码。
集合也是redis支持的数据结构之一,它使用REDIS_ENCODING_INTSET(整数集,intset.c) 和REDIS_ENCODING_HT(数据字典,dict.c) 两种方式编码方式,如果第一个元素可以表示为long long 类型值则使用REDIS_ENCODING_INTSET编码,否则使用REDIS_ENCODING_HT编码。可以对其执行求并交补的操作。
有序集合(即zset)也是redis支持的数据结构之一,它使用REDIS_ENCODING_ZIPLIST(压缩表) 和REDIS_ENCODING_SKIPLIST(跳跃表,zskiplist) 两种方式编码。它与集合的区别在于在增加了一个score字段来表示顺序。
当哈希表使用压缩列表时,它使用如下的结构存储数据(详见ziplist.c):
+---------+------+------+------+------+------+------+------+------+---------+
| ZIPLIST | | | | | | | | | ZIPLIST |
| ENTRY | key1 | val1 | key2 | val2 | ... | ... | keyN | valN | ENTRY |
| HEAD | | | | | | | | | END |
+---------+------+------+------+------+------+------+------+------+---------+
当哈希表使用数据字典时,它使用如下的结构存储数据(详见dict.c).
列表也是redis支持的数据结构之一,它使用REDIS_ENCODING_ZIPLIST(压缩列表) 和REDIS_ENCODING_LINKEDLIST (双端列表)这两种方式编码。
集合也是redis支持的数据结构之一,它使用REDIS_ENCODING_INTSET(整数集,intset.c) 和REDIS_ENCODING_HT(数据字典,dict.c) 两种方式编码方式,如果第一个元素可以表示为long long 类型值则使用REDIS_ENCODING_INTSET编码,否则使用REDIS_ENCODING_HT编码。可以对其执行求并交补的操作。
有序集合(即zset)也是redis支持的数据结构之一,它使用REDIS_ENCODING_ZIPLIST(压缩表) 和REDIS_ENCODING_SKIPLIST(跳跃表,zskiplist) 两种方式编码。它与集合的区别在于在增加了一个score字段来表示顺序。
相关文章推荐
- Redis 数据类型分析 字符串 哈希 列表 集合 有序集合 优缺点 分析 注意事项 存储结构
- redis学习(七)——五大数据类型总结:字符串、散列、列表、集合和有序集合
- redis数据类型-有序集合
- Redis有序集合数据类型操作命令
- 【Redis源码剖析】 - Redis数据类型之列表List
- Redis笔记7:数据类型之有序集合(sorted set)
- Redis数据类型之有序集合类型
- Redis 小白指南(二)- 聊聊五大类型:字符串、散列、列表、集合和有序集合
- Redis数据类型之有序集合类型--Redis系列六
- Redis源码解析4 - 数据类型之 String & List
- Redis源码解析(三):redis之数据类型String
- redis学习(七)——五大数据类型总结:字符串、散列、列表、集合和有序集合
- 【Redis源码剖析】 - Redis数据类型之有序集合zset
- Redis有序集合数据类型操作命令
- Redis数据类型--SortedSet(有序集合)
- Redis学习手册——有序集合(Sorted Sets数据类型)
- NoSQL之Redis对zset(有序集合)数据类型的操作
- Redis数据类型:有序集合类型
- redis 学习手册之有序集合数据类型sorted-sets操作
- redis中有序集合类型和列表类型的不同点与相同点