Libevent
由于 Memcached 没有防止单点的措施,因为为了保障 Memcached 服务的高可用,实现高可用的功能,本文引入 Repcached ,通过使用该工具我们可以完成 Memcached 服务的主从功能。安装顺序:
1. 先安装libevent,因为memcached依赖它;
2. 给memcached打上repcached补丁,支持主从结构,实现高可用;
3. 安装memcached,启用replication;1. libevent
# wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz -P /tools
# ./configure --prefix=/usr/local/
# make && make install2. repcached && memcached
当前补丁最新位1.4.13,memcached的版本应该一致,否则会出现异常;
# wget https://memcached.googlecode.com/files/memcached-1.4.13.tar.gz -P /tools
# wget http://mdounin.ru/files/repcached-2.3.1-1.4.13.patch.gz -P ./
# tar zxvf memcached-1.4.13.tar.gz -C /tools
# gzip -d repcached-2.3.1-1.4.13.patch.gz
# cd /tools/memcached-1.4.13
# patch -p1 -i ../repcached-2.3.1-1.4.13.patch
# ./configure --prefix=/usr/local/ --with-libevent=/usr/local/ --enable-replication
# make && make install
如果启动时出现“memcached: error while loading shared libraries:libevent-2.0.so.5: cannot
open shared object file: No such file or directory”之类的信息,表示memcached 找不到
libevent 的位置
所以,请先使用whereis libevent 得到位置,然后连接到memcached 所寻找的路径
首先查看,libevent 在哪里
# whereis libevent
libevent: /usr/local/lib/libevent.la /usr/local/lib/libevent.so /usr/local/lib/libevent.a
然后,再看memcached 从哪里找它
# LD_DEBUG=libs memcached -v 2>&1 > /dev/null | less
可以看到:是/usr/lib/libevent-2.0.so.5,所以,创建软链
# ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5
再次启动3. memcached (with repcached) 主从测试
在本机的两个不同的端口上启动两个memcached实例,一主一从,然后测试相互之间的数据同步。 memcached主从测试在本机的两个不同的端口上启动两个memcached实例,一主一从,然后测试相互之间的数据同步。
3.1 启动两个memcached实例
# memcached -d -m -p 11211 -u root -l 192.168.0.130 -x 192.168.0.129 -X 11222 -P /tmp/localhost_master.pid -vv
# memcached -d -m -p 11212 -u root -l 192.168.0.129 -x 192.168.0.130 -X 11222 -P /tmp/localhost_slave.pid -vv 两个实例的端口分别为11211和11212,共同的监听端口为11222。
3.2 通过telnet测试数据的同步
进入master,set两个值
# telnet 192.168.0.130 11211
Trying 192.168.0.130...
页:
[1]