会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
flypighh
博客园
首页
新随笔
联系
管理
订阅
2017年11月1日
redis学习笔记(九): replication
摘要: replication的代码还没完全看完,先记录看到的一些东西: 1、master/slave之间的同步有两种方式,一种full sync,一种partial sync 2、full sync也有两种实现方式: 1). socket target,就是将rdb的内容通过socket回复给执行sync
阅读全文
posted @ 2017-11-01 20:25 flypighh
阅读(276)
评论(0)
推荐(0)
2017年10月31日
redis学习笔记(八): multi
摘要: redis实现了对"事务"的支持,核心函数都在这里摘抄对于事务的定义:是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行它的4个特性:原子性、一致性、隔离性、持久性redis在事务的执行中并没有提供回滚操作,它会按顺序执行完队列中的所有命令而不管中间是否有命令出错(当然,执行
阅读全文
posted @ 2017-10-31 22:17 flypighh
阅读(1728)
评论(1)
推荐(0)
redis学习笔记(七): pubsub
摘要: redis简单地实现了订阅发布功能。 pubsub涉及到的结构主要是下面两个: 没搞懂的是在redisClient中,为什么channel和pattern一个用dict一个用list? 对应的command: pattern的匹配,里面调用的equalStringObjects就是redis实现的正
阅读全文
posted @ 2017-10-31 20:31 flypighh
阅读(1718)
评论(1)
推荐(0)
redis学习笔记(六): processCommand
摘要: 在看它的command处理之前,先说一下redis中C/S交互的流程(不知道怎么用图来表示流程,先码在这里): 1. 在initServer中调用aeCreateFileEvent给tcp listen socket注册 acceptTcpHandler 做为rfileProc2. 有客户端连接过来
阅读全文
posted @ 2017-10-31 20:02 flypighh
阅读(3455)
评论(0)
推荐(0)
2017年10月30日
redis学习笔记(五): serverCron
摘要: serverCron是redis里主要的定时处理函数,在initServer中通过调用aeCreateTimeEvent,将serverCron做为callback注册到全局的eventLoop结构当中。它在主循环中的位置: 看serverCron的实现之前先看这个run_with_period的定
阅读全文
posted @ 2017-10-30 22:33 flypighh
阅读(1908)
评论(0)
推荐(1)
2017年10月28日
redis学习笔记(三): dict
摘要: dict是redis中比较重要的结构了,不像sds, adlist那样是底层的基础结构。涉及到的相关结构体: 内部提供的操作也比较丰富,目前看到的主要还是dictCreate, dictAdd, dictReplace, dictDelect这几个基本操作。 当dict的大小发生改变时会开始reha
阅读全文
posted @ 2017-10-28 23:16 flypighh
阅读(310)
评论(0)
推荐(0)
redis学习笔记(二): adlist
摘要: adlist是redis中自己实现的一个双向链表,同时也提供迭代器操作。先上结构 对于list结构,可以看做是链表的头节点。相应地,内部提供了插入、删除、(利用迭代器)复制的操作。 只是它的rotate操作有些不懂,按照字面意思,rotate应该是是链表上所有元素倒序,但是它的实现上只是把tail节
阅读全文
posted @ 2017-10-28 23:16 flypighh
阅读(226)
评论(0)
推荐(0)
redis学习笔记(一): sds
摘要: sds(Simple Dynamic String): 它其实就是普通的字符串,只是在每个字符串的前面加了一个管理用的头部,相关类型结构的定义如下 从定义上看,5种定义对应了最大长度不同的字符串,定义这5种不同的类型可能是为了尽量减少sdshdr占用的空间。为了分sdshdr是哪一种类型,它在每一种
阅读全文
posted @ 2017-10-28 23:16 flypighh
阅读(541)
评论(1)
推荐(0)
redis学习笔记(四): ae
摘要: redis是基于事件驱动的,相应的实现都在ae.c当中。 其实个人对于“事件驱动”的理解不是那么明显,只能说从它的实现上来看稍微有一些感觉: 先由外部模块注册感兴趣的事件以及callback,在poll返回时判断是否有相应模块感兴趣的事件,如果有的话就调用注册的callback ae.c里面使用如下
阅读全文
posted @ 2017-10-28 23:14 flypighh
阅读(930)
评论(0)
推荐(0)
公告