![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构 hash
文章平均质量分 60
Carson_zhong
这个作者很懒,什么都没留下…
展开
-
redis源码学习--对象
redis中把所有用到的数据结构都抽象成对象,所以对象就是对SDS,压缩列表,双向链表和字典的集合,可以分为字符串对象,列表对象,哈希对象,集合对象,有序集合对象。 对象的结构体 typedef struct redisObject { /* REDIS_STRING 字符串对象 REDIS_LIST 列表对象 REDIS_HASH 哈希对象 REDIS_SET 集合对象 REDIS_ZSET 有序集合对象 */ unsi原创 2021-07-25 18:44:13 · 115 阅读 · 0 评论 -
redis源码学习--数据结构:字典设计和实现
redis的字典定义在dict.h,使用hash来实现,所以需要先了解hash的基础知识。 一般hash是用数组实现,根据key计算出数组下标存放value,有可能多个key值会对于一个索引,即key产生冲突,redis使用链地址法解决,即索引下存放的是value的链表。数组使用的数量和申请大小的比值称为负载因子,负载因子越大,表示key产生冲突的概率就越大,需要扩充数组;负载因子越小,表示不有内存被浪费,可以缩小数组。以上调整数组大小称为rehash。rehash前后由key计算索引的公式是不一样的。 我原创 2020-07-12 20:51:50 · 133 阅读 · 0 评论