Magent 是一款开源的 Memcached 代理服务器软件,使用它可以搭建高可用性的集群应用的 Memcached 服务 ,备份 Memcached 数据,尽管 Memcached 服务挂掉,前端也能获取到数据,客户端先连到 Magent 代理服务器 ,然后Magent 代理服务器 在可以连接多台 Memcached 服务器,然后可以进行数据的保存和备份数据。这样数据就不会丢失,保存了数据完整性。
安装Magent
1)下载安装 cd /usr/local mkdir magent wget http://memagent.googlecode.com/files/magent-0.6.tar.gz tar -zxvf magent-0.6.tar.gz /sbin/ldconfig sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile
在ketama.h或magent.c开头添加
#ifndef SSIZE_MAX #define SSIZE_MAX 32767 #endif make
复制 make 生成的/usr/local/下名为magent的文件到/usr/bin/
cp magent /usr/bin/magent
检查是否安装成功:
./magent -h
代理Memcache magent -u root -n 51200 -l 192.168.1.90 -p 12000 -s 192.168.1.111:11211 -s 192.168.1.112:11212 -b 192.168.1.112:11211 magent参数说明: -h 帮助说明 -u 用户 -g gid -p 启动端口, 默认11211. (0 to disable tcp support) -s 服务memcached地址,ip:port, set memcached server ip and port -b 备份memcached地址,ip:port, set backup memcached server ip and port -l 启动IP地址,ip, local bind ip address, default is 0.0.0.0 -n 最大并发数number, set max connections, default is 4096 -D 非后台运行don't go to background -k use ketama key allocation algorithm -f file, unix socket path to listen on. default is off -i number, set max keep alive connections for one memcached server, default is 20 -v verbose
如上一章,这次通过magent设值
缓存与DB的同步
比较保险的做法是:查询的时候从缓存中取,add、updae、delete的时候同时操作缓存与DB。
当然你也可以定时同步缓存与DB的数据,不同的业务应该有不同的选择。