自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(4)
  • 收藏
  • 关注

原创 【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 724

原创 【Redis】跳跃表(SkipList)

引言跳表在Redis的面试中是一个经常会提起的难题,什么是SkipList?它的使用场景?它是怎样的一种数据结构?它是如何进行插入和删除数据?SkipList本身的优点和缺点?以及为什么Redis选择去使用这种数据结构来当作有序集合(Zset)的底层实现?本文将解决上述问题。SkipList的定义跳跃表(skipList)是一种有序数据结构,它通过在每个节点中维持多个指向其他节点的指针,从而达到快速访问节点的目的。---《redis设计与实现》我们传统意义上的有序链表进行查询操作时的时间复杂度

2021-07-16 17:28:06 259

原创 【Redis】压缩列表(ZipList)

ZipList在Redis3.2版本之前,压缩列表(ZipList)是字典(Hash) 和 列表(List) 的 底层实现核心。(Redis3.2后使用QuickList来作为列表的底层实现,其与ZipList也有千丝万缕的联系)当一个列表键中只包含少数项,且每项都是数值较小的整数值 or 长度比较短的字符串时,Redis便会使用压缩列表(ZipList)来做列表键的底层结构。问:“我们知道在Redis中有五种最基本的数据结构类型,为什么还需要这种数据结构的存在呢?”答:对于Redis这种 “使用内

2021-07-16 12:07:47 442

原创 【Redis】对象的内存回收处理机制之一--引用计数算法

Redis:引用计数算法由于Redis是使用ANSI C语言编写的,C语言本身并没有具备自动的内存回收机制,因此Redis自己做了一套针对对象的内存回收系统----通过使用**引用计数(reference counting)**来使程序在正确的时机自动释放对象并进行内存回收。 在redisObject中拥有一条名为“refcount”的属性,其作用便是用来记录对象的使用情况:typedef struct redisObject {//...//引用计数int refcount;//...}

2021-07-15 18:08:47 782

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除