随笔分类 -  Memcached

摘要:http://ihacklog.com/linux/memcached-compilation.htmlMemcached :1.4.5libevent-1.4.13-stableLinux ubuntu 3.2.0-23-generic 64位 Server版本gcc 4.6.312345wgethttp://memcached.org/latesttar-xvzfmemcached-1.4.5.tar.gzcdmemcached-1.4.5./configuresudomake报错:make all-recursivemake[1]: Entering directory `/usr/lo 阅读全文
posted @ 2012-05-31 10:46 balaamwe 编辑
摘要:http://basiccoder.com/memcached-memory-mamagement.htmlMemcached的内存管理在网上也可以搜集到不少不错的文章,新浪的这篇《Memcached深度分析》讲得不错,读别人的文章还是不如自己直接去读源码分析源码来得直接,这里写一下我阅读Memcached源码时对于Memcached内存管理机制的理解。Memcached的代码结构很简单,从main()函数入口进去之后便是几个模块的初始化函数,和内存管理相关的主要有两个函数,一个是assoc_init(),这个是用来初始化哈希表的,关于这个哈希表的作用留在外面讨论,另一个是slabs_init 阅读全文
posted @ 2011-12-24 18:12 balaamwe 编辑
摘要:http://basiccoder.com/thread-model-and-state-machine-of-memcached.htmlMemcached是一种应用较广泛的分布式内存对象缓存系统,应用之余总想了解它的实现机理,这也就是开源的好处,以至于每接触一款优秀的开源软件都有去阅读它源代码的冲动,Memcached-1.4.7的代码量还是可以接受的,只有10K行左右,我比较关心的两个方面还是它的进程(线程)管理机制和内存管理机制,这里先简单写一下我对Memcached进程管理方面的理解。Memcached使用libevent实现事件循环,libevent在Linux环境下默认采用epo 阅读全文
posted @ 2011-12-24 18:10 balaamwe 阅读(716) 评论(0) 推荐(0) 编辑
摘要:http://hi.baidu.com/joysoftfan/blog/item/e6deaae459d7ae3ab9382035.html刘连春 关于memcached使用的两个坑2011-03-03 13:11关于slab之间无法共享内存:Memcached里的数据是按不同的size放在不同的slab里,每个slab有一个自己的LRU链表, slab占用内存的方式是只进不出,假设memcached内存上限为1000M,我存入1000M 100k大小的数据,过期时间都是1秒, 1秒后尝试set一条500k的数据就会失败,虽然前期的100k数据都是过期的,也没有办法将其它slab的内存“借”过 阅读全文
posted @ 2011-12-13 13:45 balaamwe 编辑
摘要:转自http://happyiww.popo.blog.163.com/blog/static/922448320078682017946/Memcached 结构分析 Memcached是一个分布式的内存缓存库,正好自己想写个cache的模块,那么就偷偷师吧。 功能库看的是实现原理和思路,性能库看的是实现细节,memcahed是属于一个看性能的库(实现cache功能的模块很多,但是性能就有高低了)1、memcached的数据交互协议 memcached是分布式的内存缓存服务器,它是通过socket(tcp/udp/unixsock)与其他程序交换数据的,这样就需要一套协议来保证正常通信。 . 阅读全文
posted @ 2011-12-11 23:55 balaamwe 编辑
摘要:转自http://www.cnblogs.com/kucongzhi/archive/2011/10/27/2226947.htmlMemcached内存管理源码阅读memcache能进行快速地查找和良好的内存管理,得益于良好的hash查找和内存管理技巧.这两项功能主要由assoc.c和slab.c这两个文件来实现. 下面详细地分析一下每行代码实现slab.c#define POWER_SMALLEST 1 //slabclass数组的最小下标(slabclass 主要是来保存分配好的内存)#define POWER_LARGEST 200 //slabclass... 阅读全文
posted @ 2011-12-11 22:29 balaamwe 编辑
摘要:进入cmd命令行,输入telnet 127.0.0.1 11211(memcached默认端口为11211)stats:使用stats命令查看当前memcache服务器的状态命令行显示代码STATpid924STATuptime21057STATtime1303194576STATversion1.2.4STATpointer_size32STATcurr_items0STATtotal_items3STATbytes0STATcurr_connections1STATtotal_connections28STATconnection_structures8STATcmd_get12STATc 阅读全文
posted @ 2011-11-16 09:34 balaamwe 编辑