- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 redis lazyfree空间懒释放的源码分析
redis是一个内存数据库,内存释放又是一个比较重的操作,所以redis对于部分内存的释放采取了懒释放。
2017-04-13 17:13:27
1671
原创 redis evict.c内存淘汰机制的源码分析
redis是一个内存数据库,当数据变多之后,就要淘汰一些键值对,使得内存有足够的空间来保存新的键值对。
2017-04-12 14:36:53
2601
1
原创 redis aof持久化的源码分析
redis提供了aof持久化功能。与rdb不同,aof持久化是通过保存redis服务器所执行的写命令来记录数据库的状态。
2017-04-02 11:22:04
2453
原创 redis rdb持久化的源码分析
redis是一个内存数据库。 在redis运行时,rdb程序就是将内存中的数据库的数据结构以rdb文件形式保存到磁盘。
2017-03-30 23:02:42
2273
原创 memcached I/O模型源码分析
memcached是基于多路复用实现事件驱动的服务器,在事件处理方面,应用了master+works的线程模型。 master线程负责监听端口,当有新的连接,master线程负责接收连接,将连接加入到指定的work线程的队列,然后通过管道通知该线程处理该连接。 master线程和work线程之间通过一个管道进行信息交互。 work线程监听管道读端,当master线程发送'c',work线程从队列获取客户端连接进行监听,负责客户端所有请求的处理。
2017-01-31 22:46:57
706
原创 redis inset整数集合的源码分析
inset是redis中用于保存整数值的集合抽象数据结构,可以保存类型为int16_t,int32_t,int64_t的整数值,并且在集合中不会出现重复整数值。
2017-01-01 16:36:17
848
原创 redis db.c数据库底层操作的源码分析
redis的所有数据库都是保存在redisServer结构体的db数组中。db.c主要是封装了数据库的底层操作实现。
2016-12-31 23:54:54
1344
原创 redis object对象系统的源码分析
redis中有数据结构来存储键值对,主要有简单动态字符串、双端队列、字典、压缩列表、整数集合和跳跃表。redis就基于这些数据结构构建一个对象系统,主要是字符串对象、列表对象、哈希对象、集合对象和有序集合对象,每种对象都用到至少一种上述的数据结构。
2016-12-29 16:02:45
845
原创 redis networking通信协议的源码分析
networking的代码主要是针对client的命令进行处理,主要是实现三个功能:client连接的管理;解析client的请求;发送回复内容给client。
2016-12-28 15:57:02
2082
原创 redis dict字典的源码分析
Redis的字典用哈希表作为底层实现,一个哈希表里可以有很多哈希表节点,而每个哈希表节点就保存了字典的一个键值对。
2016-12-26 22:57:25
766
原创 redis ziplist压缩列表的源码分析
ziplist是redis为了节约内存而开发的,由一系列特殊编码的连续内存块组成的顺序数据结构。一个ziplist可以包含任意多个节点(entry),每个节点可以保存一个字节数组或者一个整数值。
2016-12-22 19:27:59
944
原创 redis sentinel哨兵机制的源码分析
sentinel是redis的高可用性解决方案:由一个或多个sentinel实例组成sentinel系统监视多个master以及master的slave,并在被监视的master进入下线状态时,自动将下线master的某个slave升级为master,然后新的master代替下线的master处理命令请求。
2016-12-09 11:33:51
1924
原创 redis cluster集群的源码分析(1)
对于cluster.c的源码分析,我将会分两部分介绍。本文主要分析集群通信和通信故障。先大致归纳下cluster的主要函数void clusterCron(void);//集群的定时任务int clusterProcessPacket(clusterLink *link);//消息处理中心void clusterProcessGossipSection(clusterMsg *hdr...
2016-12-07 13:51:50
3036
原创 函数指针
函数指针是指向函数的指针变量。 因而“函数指针“本质是指针变量,只不过该指针变量指向函数。在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,我们就可以用指针变量调用函数,就如同用指针变量可引用其他类型变量一样。函数指针有两个用途:调用函数和做函数的参数。 函数指针的声明方法为: 函数返回类型 (标识符指针变量名
2014-03-24 12:45:19
684
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人