失效链接处理 |
Java中高级面试宝典 PDF 下载
本站整理下载:
相关截图:
主要内容:
memcache的分布式原理
memcached 虽然称为 “ 分布式 ” 缓存服务器,但服务器端并没有 “ 分布式 ” 功能。每个服务器都是完全独立和隔离的服务。 memcached 的分布式,则是完全由客户端程序库实现的。 这种分布式是 memcached 的最大特点。
memcache的内存分配机制
如何存放数据到memcached缓存中?(memcache内存分配机制)
Slab Allocator内存分配机制:
预先将内存分配成数个slab仓库,每个仓库再切出不同大小的chunk,去适配收到的数据。多余的只能造成浪费,不可避免。
增长因子(Grace factor):一般而言观察数据大小的变化规律设置合理的增长因子,默认1.25倍.
太大容易造成浪费。memcached.exe -m 64 -p 11211 -f 1.25
如果有100byte的内容要存储,但122大小的仓库的chunk用满了怎么办?
答:是并不会寻找更大仓库的chunk来存储,而是把122仓库中的旧数据踢掉!
memcache的惰性失效机制
1 当某个值过期后并不会从内存删除。(因此status统计时的curr_items有其信息)
2 如果之前没有get过,将不会自动删除。
如果(过期失效,没get过一次)又没有一个新值去占用他的位置时,当做空的chunk占用。
3 当取其值(get)时,判断是否过期:如果过期返回空,且清空。(所以curr_items就减少了)
即这个过期只是让用户看不到这个数据而已,并没有在过期的瞬间立即从内存删除,这个过程
称为lazy expirtion,属性失效,好处是节约了cpu和检测的成本,称为“惰性失效机制”
|