首页 > 其他 > 详细

Redis源码解析(四):redis之数据类型哈希表、列表、集合和有序集合

时间:2015-04-15 01:00:44      阅读:231      评论:0      收藏:0      [点我收藏+]

    哈希表也是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字段来表示顺序。

技术分享



Redis源码解析(四):redis之数据类型哈希表、列表、集合和有序集合

原文:http://blog.csdn.net/flashflight/article/details/45049407

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!