
redis源码学习
ctreewang
这个作者很懒,什么都没留下…
展开
-
探究redis和memcached的 LRU算法--------redis的LRU的实现
一直对这redis和memcached的两个开源缓存系统的LRU算法感兴趣。今天就打算总结一下这两个LRU算法的实现和区别。首先要知道什么是LRU算法:LRU是Least Recently Used 近期最少使用算法。相关的资料网上一大堆。http://en.wikipedia.org/wiki/Cache_algorithms#LRU redis的六种策略rewrite原创 2015-04-06 23:18:24 · 8696 阅读 · 1 评论 -
redis源码解析----epoll的使用
平时做项目,涉及到网络层的都是epoll,前几年发现redis的epoll实现起来非常的精简,好用。因为提供的接口简单,爱并实现的很高效。于是,我就提取出来,直接使用。今天又打开该文件详细的看看他的实现细节。首先简单介绍epoll,它是linux内核下的一个高效的处理大批量的文件操作符的一个实现。不仅限于socket fd。他在超时时间内会唤醒有事件的操作符。其中有两种模式 1、水平触原创 2015-05-02 14:14:54 · 6878 阅读 · 1 评论 -
基于redis ae实现 Linux中的文件系统监控机制(inotify)
(英文部分为转的。代码是个人代码)1 What’s inotify The inotify API provides a mechanism for monitoring file system events. Inotify can be used to monitor individual files, or to monitor directories. When a direc原创 2014-07-22 12:03:49 · 2697 阅读 · 0 评论 -
基于redis AE的异步网络框架
最近一直在研究redis的源码,redis的高效率令人佩服。在我们的linux机器上,cpu型号为, Intel(R) Pentium(R) CPU G630 @ 2.70GHz Intel(R) Pentium(R) CPU G630 @ 2.70GHz上 set,get 都能达到每秒钟15W的请求处理量,真是佩服这代码的效率。前几篇文章,主要是介绍了基本的代码,比如原创 2014-07-02 12:35:58 · 6851 阅读 · 1 评论 -
redis源码解读之哈希接口————dict.h文件
这篇文章主要是介绍redis的哈希的原创 2014-05-04 13:03:12 · 3141 阅读 · 2 评论 -
redis源码解读之双向链表————adlist.h文件
redis内部最最常见的数据结构就是双向链表,很多数据都是存储到链表内部的。先提供一下链表的一个节点代码typedef struct listNode { struct listNode *prev; struct listNode *next; void *value;} listNode;就是这样子。双向链表的一个迭代器在遍历链原创 2014-04-22 17:50:09 · 1985 阅读 · 0 评论 -
redis源码解读之内存管理————zmalloc文件
本文章主要记录本人在看redis源码的一些理解和想法。因为功力有限,肯定会出现问题,所以,希望高手给出指正。第一篇就是内存相关的介绍。因为我喜欢先看一些组件的东西,再看整体的流程。先上一下代码吧头文件//主要提供内存分配和释放的基础功能void *zmalloc(size_t size);//主要提供内存分配和释放的基础功能void *zcalloc(size_t s原创 2014-04-21 11:55:11 · 5860 阅读 · 2 评论 -
wait3,wait4 用法
wait3和wait4的用法原创 2016-01-24 20:01:23 · 14544 阅读 · 1 评论 -
backgroud thread
redis终于在2.4版本里引入了除主线程之外的后台线程,这个事情由来已久.早在2010年2月就有人提出aof的缺陷,提及的问题主要有:1 主线程aof的每次fsync(everysecond模式)在高并发下时常出现100ms的延时,这源于fsync必不可少的磁盘操作,即便已经优化多次请求的离散小io转化成一次大的连续io(sina的同学也反映过这个问题).2 主线程里background转载 2016-02-04 00:21:18 · 5324 阅读 · 0 评论