会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
yangzd~
博客园
首页
新随笔
联系
订阅
管理
2019年10月8日
redis源码分析(六)--cluster集群同步
摘要: Redis集群消息 作为支持集群模式的缓存系统,Redis集群中的各个节点需要定期地进行通信,以维持各个节点关于其它节点信息的实时性与一致性。如前一篇文章介绍的,Redis在专用的端口监听集群其它节点的连接,将集群内部的的通信与客户端的通信区分开来,任意两个节点之间建立了两个tcp连接,形成一条全双
阅读全文
posted @ 2019-10-08 15:37 yangzd~
阅读(1079)
评论(0)
推荐(0)
2019年10月7日
redis源码分析(五)--cluster(集群)结构
摘要: Redis集群 Redis支持集群模式,集群中可以存在多个master,每个master又可以拥有多个slave。数据根据关键字映射到不同的slot,每一个master负责一部分的slots,数据被存储在负责它的slot的master节点上。slave会同步它的master节点上的数据到本节点,当m
阅读全文
posted @ 2019-10-07 15:20 yangzd~
阅读(984)
评论(0)
推荐(0)
2019年10月6日
redis源码分析(四)--aof持久化
摘要: Redis aof持久化 Redis支持两种持久化方式:rdb与aof,上一篇文章中已经大致介绍了rdb的持久化实现,这篇文章主要介绍aof实现。 与rdb方式相比,aof会使用更多的存储空间,因为它将数据以客户端命令的形式进行存储,并使用ascii编码。但它也有相应的优点,如支持append的方式
阅读全文
posted @ 2019-10-06 23:26 yangzd~
阅读(343)
评论(0)
推荐(0)
redis源码分析(三)--rdb持久化
摘要: Redis rdb持久化 Redis支持两种持久化方式:rdb与aof。rdb将一个节点上的内存数据序列化后存储到磁盘中,序列化的数据以尽可能节约空间的方式存储,并非完全的ascii表示。它的优点在于节约空间,恢复速度快,缺点在于每一次操作都需要对整个内存数据进行序列化,并且持久化过程中的修改被丢失
阅读全文
posted @ 2019-10-06 17:14 yangzd~
阅读(533)
评论(0)
推荐(0)
redis源码分析(二)-rio(读写抽象层)
摘要: Redis io抽象层 Redis中涉及到多种io,如socket与file,为了统一对它们的操作,redis设计了一个抽象层,即rio,使用rio可以实现将数据写入到不同的底层io,但是接口相同。rio的实现在rio.h与rio.c源文件中,支持内存、文件、socket集合三类底层io。 1. s
阅读全文
posted @ 2019-10-06 11:04 yangzd~
阅读(1369)
评论(0)
推荐(0)
2019年9月16日
redis源码分析(一)-sds实现
摘要: redis支持多种数据类型,sds(simple dynamic string)是最基本的一种,redis中的字符串类型大多使用sds保存,它支持动态的扩展与压缩,并提供许多工具函数。这篇文章将分析sds在redis中是如何实现的。 1. sds类型 sds在redis中其实就是一个char*类型的
阅读全文
posted @ 2019-09-16 11:24 yangzd~
阅读(1040)
评论(0)
推荐(0)
2019年8月16日
libevent源码分析三--signal事件响应
摘要: libevent支持io事件,timeout事件,signal事件,这篇文件将分析libevent是如何组织signal事件,以及如何实现signal事件响应的。 1. sigmap 类似于io事件,event_base有另外一个hash表sigmap用于存储signal事件,hash表使用sign
阅读全文
posted @ 2019-08-16 17:59 yangzd~
阅读(484)
评论(0)
推荐(0)
libevent源码分析二--timeout事件响应
摘要: libevent不仅支持io事件,同时还支持timeout事件与signal事件,这篇文件将分析libevent是如何组织timeout事件以及如何响应timeout事件。 1. min_heap 首先,event_base中有一个成员struct min_heap timeheap,这是一个最小堆
阅读全文
posted @ 2019-08-16 16:18 yangzd~
阅读(1471)
评论(0)
推荐(0)
2019年8月15日
libevent源码分析一--io事件响应
摘要: 这篇文章将分析libevent如何组织io事件,如何捕捉事件的发生并进行相应的响应。这里不会详细分析event与event_base的细节,仅描述io事件如何存储与如何响应。 1. select libevent实现io事件的backend实际上使用的是io复用接口,如select, poll, e
阅读全文
posted @ 2019-08-15 18:13 yangzd~
阅读(531)
评论(0)
推荐(0)
2019年8月13日
memcached源码分析二-lru
摘要: 在前一篇文章中介绍了memcached中的内存管理策略slab,那么需要缓存的数据是如何使用slab的呢? 1. 缓存对象item内存分布 在memcached,每一个缓存的对象都使用一个item结构体进行描述,然后再将item描述符及相应数据存储到slabs管理的内存中。缓存对象根据其大小在sla
阅读全文
posted @ 2019-08-13 11:50 yangzd~
阅读(539)
评论(0)
推荐(0)
下一页
公告