redis
文章平均质量分 92
孤独剑0001
这个作者很懒,什么都没留下…
展开
-
redis数据结构---quicklist
quicklist是redis在3.2版本中加入的新的数据结构,用作redis对外提供的五种数据类型---list的底层实现。本文关于redis的讲解都是基于redis-4.0.1版本的源码。 黄建宏老师的《redis设计与实现》第二版是针对redis 3.0源码讲解的。书中讲redis的list数据结构的底层实现有两种,压缩列表(ziplist)和双向链表(adli...原创 2018-04-26 13:19:04 · 1075 阅读 · 0 评论 -
redis的事件模型详解(结合Reactor设计模式)
文章基于redis-4.0.1源码详细介绍一下redis的事件模型。 一、redis事件模型概览 redis是一个事件驱动的服务程序,在redis的服务程序中存在两种类型的事件,分别是文件事件和时间事件。文件事件是对网络通信操作的统称,时间事件是redis中定时运行的任务或者是周期性的任务(目前redis中只有serverCron这一个周期性时间事件...原创 2018-05-11 10:20:11 · 5344 阅读 · 1 评论 -
redis数据结构---ziplist
最近两天仔细研究了redis中的ziplist数据结构,再回顾之前写过的关于dict和zskiplist数据结构的博客文章,发现对于实现代码的细节竟然有些遗忘,看来及时的复习还是很有必要的。这是前话。 其实,仔细看过redis中使用的几种数据结构,就会发现redis这种内存数据库对于内存的节约程度真的是到了淋漓尽致的地步。之前看过的sds中的sdshdr中根据需...原创 2018-04-27 15:23:06 · 653 阅读 · 0 评论 -
redis内存限制管理---maxmemory配置详解
作为内存数据库,为了防止redis占用过多的内存对其他的应用程序造成影响,redis的使用者可以在redis.conf文件中通过设置maxmemory选项对redis所能够使用的最大内存做限制,并通过maxmemory_policy对redis占用内存超过maxmemory之后的行为做定制。这篇文章,我们从redis源码的角度剖析一下redis的最大内存管理策略。 ...原创 2018-04-28 11:42:26 · 52736 阅读 · 1 评论 -
redis数据结构---sds
看过了《redis设计与实现》,了解了redis设计的基本原理。但是三个月之后发现,遗忘了很多,只好重新温习。只是,这次是从redis源码的角度学习的,当然过程中会翻阅《redis设计与实现》这本书,毕竟需要一个框架指导。按照redis源码的阅读顺序,按照从基本到复杂、从redis使用的基本数据结构开始。本文就介绍redis中使用的最常见的数据结构之一---sds(simple d...原创 2018-04-28 12:03:29 · 1438 阅读 · 1 评论 -
redis数据结构---zskiplist
复习《redis设计与实现》,跳跃表是在看《redsi设计与实现》的时候第一次接触到的概念,因此认真研究了一下跳跃表的性质以及redis源码中针对跳跃表的实现。下面对redis源码中关于跳跃表的实现配合源码做详解的解释(注释都包含在源码中)。至于跳跃表的性质及查找的复杂度(平均为O(log(N))、最差为O(N)),自行google,相关文章非常之多。本篇文章只记录当时自己花费时间...原创 2018-04-28 14:45:36 · 1234 阅读 · 0 评论 -
redis数据结构---intset
这两天看过《redis设计与实现》中的intset一章,配合着redis 4.0.1中的源码,感觉自己对redis中的intset有了新的认识。在这里写下自己对于intset的理解,以及redis源码中的实现技巧。 intset作为redis中集合的底层实现之一,当集合中的元素数量不太多且都是整数值的时候,set使用intset作为其底层实现。个人认为,redis中i...原创 2018-04-28 14:52:29 · 366 阅读 · 0 评论 -
redis cluster 重新分片
我们在IP地址127.0.0.1已经创建好了三个节点,端口分别是7000、7100和7200,以下分别用7000、7100和7200表示这三个节点,这三个节点的配置文件中的配置选项cluster-config-file分别为nodes-7000.conf、nodes-7100.conf和nodes-7200.conf。初始化状态下,集群状态配置分别如图1、2和3所示。 ...原创 2018-11-30 15:47:46 · 2095 阅读 · 1 评论