配置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
# 由于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)
# 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网卡可能承受不住,建议更换千兆或万兆网卡