基于memcache架构1TB高速内存池方案设计


配置magent代理memcached,让web层进行透明调用

下载地址http://code.google.com/p/memagent/

# ln -s /usr/lib64/libm.so /usr/lib64/libm.a  ###centos 6 以上要建立软连接动态库

# wget https://memagent.googlecode.com/files/magent-0.6.tar.gz

# tar zxvf   magent-0.6.tar.gz

# cd magent-0.6.tar.gz

# 由于magent程序bug比较多,需要手功修改一些代码

vim ketama.h
在开头加入    
#ifndef SSIZE_MAX
# define SSIZE_MAX      32767
#endif
vim Makefile   
CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64)
改为:    
CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64)


#  make

# cp magent /usr/bin/magent

# magent -h #查看帮助

#####安装memcached请参照相关文档###

# magent - u root -p 11211 -n 20000 -s 192.168.1.11:11211 -s 192.168.1.12:11211 -b 192.168.1.101:11211 -b 192.168.1.102:11211

###有多台服务器按规则添加即可,实行1:1的备份策略

magent的数据以hash算法进行存储,备份服务器可以一台也可以多台,一台汇总,多台则水平分布备份

当master主机down掉后,magent向备份服务器查询数据返回,master主机故障恢复后数据丢失会造成命中失败(这个问题好无奈)


测试telnet 192.168.1.10 11211 ##magent 服务器VIP地址

magent 兼容memcache协议,对上层web不需要任何逻辑更改

由于magent承担出入数据口,普通100M网卡可能承受不住,建议更换千兆或万兆网卡

你可能感兴趣的:(基于memcache架构1TB高速内存池方案设计)