redis
qq_35728402
这个作者很懒,什么都没留下…
展开
-
redis 对象
redis 对象定义 redis的对象主要成员是类型和编码,这两个成员决定了数据在内存中的保存方式 typedef struct redisObject { //对象类型 unsigned type:4; //对象编码 unsigned encoding:4; //LRU时间 unsigned lru:LRU_BITS; /* LRU time (relative to global lru_clock) or原创 2020-10-18 16:36:59 · 64 阅读 · 0 评论 -
redis压缩列表
压缩列表是列表和字典的底层实现 压缩列表结构 压缩列表字段说明 属性 类型 用途 zlbytes uint32_t 整个压缩列表所占字节数 zltail uint32_t 记录最后节点距离压缩列表起始位置的字节数 zllen uint16_t 压缩列表中的元素个数 entryX 不定 存储的元素 zlend uint8_t 特殊值(0xFF) 压缩列表节点结构 previous_engtry_length : 存储上一个元素的长度,有两个长度 1个字节,如果上一个en原创 2020-10-17 21:10:25 · 102 阅读 · 0 评论 -
redis 整数集合
整数集合是redis集合的实现方式之一 主要好处是灵活、节约内存空间 整数集合类定义 集合种存储的数据宽度是根据encoding来定义的,如果等于INTSET_ENC_INT16数据宽度为16位,INTSET_ENC_INT32是32位,INTSET_ENC_INT64是32位 typedef struct intset { //编码方式 //主要有3种编码格式:INTSET_ENC_INT16、INTSET_ENC_INT32、INTSET_ENC_INT64 uint32_t encodin原创 2020-10-16 23:17:23 · 103 阅读 · 0 评论 -
redis 跳跃表
跳跃表可以看作时对有序链表的改进,我们知道对链表中元素查找的时间复杂度时O(n),但是,如果我们可以知道中间节点的大小,就可以判断元素实在链表的前半段还是后半段,然后在链表的前半段或者后半段去查找,通过这种思想,就可以把链表的时间复杂度降低到O(lgn) 跳跃表就是借助这种思想,但是因为链表中的元素数随着插入元素和删除元素的减少,很难定位中位数在哪里,所以,跳跃表采用随机的方法来定义每个节点的层数。 跳跃表类定义 redis 中跳跃表主要有两个结构zskiplist和zskiplistNode zskipl原创 2020-10-15 23:53:59 · 222 阅读 · 0 评论 -
redis 字典
字典类图 1、字典中保存一个函数表头列表,ht[0] 平时存储数据,ht[1]空闲,当rehash的时候ht[1]分配rehash的空间 2、type中存储字典中的各种函数 3、treashindex为-1,标示没有进行rehash,不为零标示rehash的进度 redis 字典结构 字典在一般情况下,只有ht[0]表有数据 字典解决hash冲突的方法时开链法 redis 字典rehash rehash的时机 当字典没有执行BGSAVE或者BGREWRITEAOF的时候,哈希表的负载因子大于等于1 当原创 2020-10-13 23:11:55 · 114 阅读 · 0 评论 -
redis 链表
redis链表结构如下 #mermaid-svg-b4k1oDcfFVhafcB1 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-b4k1oDcfFVhafcB1 .label text{fill:#333}#mermaid-svg-b4k1oDcfFVhafcB1 .node rect,#mermaid-sv原创 2020-10-11 23:12:07 · 71 阅读 · 0 评论 -
redis简单动态字符串
redis简单字符串的结构如下: #mermaid-svg-yxliJ7vJsuJHWrLK .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-yxliJ7vJsuJHWrLK .label text{fill:#333}#mermaid-svg-yxliJ7vJsuJHWrLK .node rect,#merma原创 2020-10-08 21:39:12 · 133 阅读 · 2 评论