Redis源码 - Set(集合)
作者:互联网
通常我们把Redis Set结构称为无序集合,这在一定程度上是有道理的。为什么是一定程度上呢,因为通过源码的实现过程我们发现了一些小细节。从sadd命令开始入手:
sadd先按照redis的一贯套路 检查key是否存在,不存在就创建,存在就直接添加值。只是在sadd在创建key的时候它动了一点小心思,是什么呢?看代码先:
简单理解就是如果传入的值能够被转换为数字类型则使用的intset这种方式来保存数据,不能就用set的方式来保存。那intset是什么,set又是什么呢?
intset就是intset结构体,而set就是dict结构体。而dict上的dictEntry被定义成了一个链表的形式(由于目前笔者c水平有限,细节就没法解释了
标签:Set,set,intset,Redis,源码,dict,sadd 来源: https://www.cnblogs.com/2019PawN/p/15410888.html