Redis
文章平均质量分 74
你们该去上班咯
这个作者很懒,什么都没留下…
展开
-
【Redis】快速列表(QuickList)
QuickListQuickList是Redis3.2版本中新增加的一种数据结构类型,在该版本后替代原有的ZipList+LinkedList的链表底层,成为新的链表底层数据结构。它的定义在quicklist.c中如下: A doubly linked list of ziplists. //一个由ziplist组成的双向链表。通过定义可知,该结构满足原链表底层的需求,且全程使用zipList,无需判断是否需要使用zipList,(关于ZipList可以看【Redis】压缩列表)理解Qui原创 2021-07-21 18:01:07 · 784 阅读 · 0 评论 -
【Redis】跳跃表(SkipList)
引言跳表在Redis的面试中是一个经常会提起的难题,什么是SkipList?它的使用场景?它是怎样的一种数据结构?它是如何进行插入和删除数据?SkipList本身的优点和缺点?以及为什么Redis选择去使用这种数据结构来当作有序集合(Zset)的底层实现?本文将解决上述问题。SkipList的定义跳跃表(skipList)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。---《redis设计与实现》我们传统意义上的有序链表进行查询操作时的时间复杂度原创 2021-07-16 17:28:06 · 325 阅读 · 0 评论 -
【Redis】对象的内存回收处理机制之一--引用计数算法
Redis:引用计数算法由于Redis是使用ANSI C语言编写的,C语言本身并没有具备自动的内存回收机制,因此Redis自己做了一套针对对象的内存回收系统----通过使用**引用计数(reference counting)**来使程序在正确的时机自动释放对象并进行内存回收。 在redisObject中拥有一条名为“refcount”的属性,其作用便是用来记录对象的使用情况:typedef struct redisObject {//...//引用计数int refcount;//...}原创 2021-07-15 18:08:47 · 872 阅读 · 0 评论 -
【Redis】压缩列表(ZipList)
ZipList在Redis3.2版本之前,压缩列表(ZipList)是字典(Hash) 和 列表(List) 的 底层实现核心。(Redis3.2后使用QuickList来作为列表的底层实现,其与ZipList也有千丝万缕的联系)当一个列表键中只包含少数项,且每项都是数值较小的整数值 or 长度比较短的字符串时,Redis便会使用压缩列表(ZipList)来做列表键的底层结构。问:“我们知道在Redis中有五种最基本的数据结构类型,为什么还需要这种数据结构的存在呢?”答:对于Redis这种 “使用内原创 2021-07-16 12:07:47 · 480 阅读 · 0 评论