Redis
文章平均质量分 95
《Redis设计与实现》阅读总结
Zerone Wong
这个作者很懒,什么都没留下…
展开
-
图文详解Redis跳跃表skiplist
Redis跳跃表图文详解列表数组实现(ArrayList)链表实现(LinkedList)关于有序列表的思考什么是跳跃表?图解跳跃表跳跃表节点结构体图解跳跃表节点跳跃表结构体图解跳跃表层高算法上帝也掷骰子跳表常用操作过程解析查询插入删除原创 2021-05-02 01:01:07 · 698 阅读 · 0 评论 -
图文详解Redis字典的底层实现
字典的实现哈希表(dictionary hashtable)图解哈希表数据结构哈希节点(dictionary entry)图解哈希节点数据结构字典(dictionary)图解字典数据结构哈希掩码在哈希算法中的巧妙应用哈希冲突rehash(重新散列)Redis对字典哈希表进行rehash的步骤渐进式rehash期间读/写操作的执行过程那么问题来了:渐进式rehash期间如果没有读写操作,是如果在内存将满或已满时进行rehash的话,内存会继续飙升哈希表的扩容和缩容原创 2021-04-10 15:46:53 · 710 阅读 · 0 评论 -
Redis List底层实现:链表
1. 链表被广泛用于实现Redis各种功能,如列表键、发布与订阅、慢查询、监视器等;2. 链表节点由一个listNode结构来表示,每个节点都有指向前一个节点的前驱节点和指向后一个节点的后继结点,构成了双端链表;3. 每个链表都由一个list结构来表示,有表头节点指针,表尾节点指针和链表长度等信息,可以让Redis在部分情况下进行O(1)复杂度的操作;4. 因为list的表头节点head的prev和表尾节点tail的next都指向NULL,所以Redis的链表是一条无环链表;5.dup、free和match原创 2021-03-29 12:35:34 · 276 阅读 · 0 评论 -
Redis字符串的底层实现:SDS
Redis字符串的底层实现:SDS字符串是Redis里最常用到的一种数据类型,在Redis中,默认字符串底层实现就是SDS(Simple Dynamic String),即简单动态字符串。空间预分配。不用C语言字符串的原因:1. 效率低:获取字符串长度时间复杂度高2. 可能出现缓冲区溢出3. 二进制不安全4. 内存重分配次数太过频繁原创 2021-03-21 21:48:24 · 509 阅读 · 2 评论