存档

‘Memcached’ 分类的存档

Memcached 缓存过期机制源码分析

2015年10月7日 没有评论 17448次阅读    

之前的文章说了 memcached源码学习-线程框架 和 get操作处理代码, 其实最重要的是他的缓存过期策略,以及内存管理机制, 篇幅过长分几篇文章写,这里写一下memcached的缓存过期策略。

说到缓存过期策略,网上有一大堆帖子会介绍说“LRU, 最近最少使用 ” 算法,而且源码中间也是大量的含lru字样的函数,变量,比如lru_crawler_crawl 等,很多人也就信了,可事实却不是这样的。 阅读全文...

Share
分类: Memcached 标签:

memcached LRU过期机制lru_crawler指令可能会错误的清理不应该的slabs的bug

2015年10月7日 没有评论 12738次阅读    

1.4.20 版本在处理 lru_crawler crawl 2 指令的时候,lru_crawler_crawl函数竟然存在变量未定义的bug,从而导致错误的清理了不应该的slabs槽位的数据。
阅读全文...

Share
分类: Memcached 标签:

memcached 简单get操作处理代码学习

2014年10月8日 没有评论 12090次阅读    

好久没写博客了,这里简单记录一下memcached的get操作处理过程,之前写了些memcached的主体流程/线程框架。get命令相对来说是最简单的了, 主要分为这几步: 读取命令; 解析命令;查找key, 拼接返回数据格式;发送结果给客户端;

阅读全文...

Share
分类: Memcached 标签:

memcached里面一段神奇,危险,暂且无bug的code: add_iov

2014年10月7日 没有评论 12783次阅读    

翻memcached代码,看到一个函数:add_iov , 在里面着实纳闷了许久,多次认为这个代码会有问题,于是打日志,gdb上去调试,最后不得不承认: 这代码能work!(不过很危险)

阅读全文...

Share

memcached源码学习-线程框架

2014年7月8日 没有评论 12725次阅读    

看了看memcached, memcached 主要的线程框架是master-slave的主线程-工作线程模式,单进程,多线程,之间通过管道和链表通信,基本就是这样。

下面具体看下代码。 阅读全文...

Share