数据平台前端缓存技术方案(M/R) version: v1
0 1 缓存Memcached(M) 1
1 M的概念 M是高性能的分布式内存缓存服务器,协议简单
通过缓存数据库的查询结果,减少数据库访问次数,提高动态Web应用的速度和扩展性
M支持下述语言 1
2 M的设计 1
1 M的机制 守护进程机制:UNIX Daemon;Socket事件处理机制:非阻塞、Libevent异步事件处理、Epoll/Kqueue;内存管理机制:Slab内存分配、LRU对象清除、Hash快速检索 Item
内存管理中,Slab中分成小单位Chunk,Chunk中存有实际数据Item
下述是 M的 Slab内存结构图和分配实例图
Slab内存结构图 Slab内存分配实例图 Slab计算占用内存图 Item数据存储格式图 1
2 M的架构设计 M的设计遵从原则是,首次访问从RDBMS中取得数据,按一定规则保存到M后,第二次访问从M中取得数据显示到浏览器页面中
M架构层次图 M的服务端并没有分布式功能,各个服务器之间没有互相通信以共享信息
M的分布式完全取决于客户端的实现,如下图所示
M使用说明图 如需要在M中保存键名为“tokyo”的数据时,通过客户端应用程序的算法,根据 Key来决定选择哪个服务器节点进行存储
服务器选定之后,命令其保存键名“tokyo”和键值“data”
Set实例图 如需要在M中获取键名为“tokyo”的数据时
把键名“tokyo”传给客户端函数库,通过和数据保存相同的算法,根据 Key选择服务器节点
只要算法一致,就能选对服务器,发送命令取得键值“data”
Get实例图 1
3 M的客户端算法 1
1 余数分散 根据服务器台数的余数进行分散,求得Key的整数Hash值H,除以服务器的台数N,由余数指向选中服务器,即H%N
算法的数据分散性比