赞
踩
memcache本身没有像redis所具备的数据持久化功能,但是可以通过做集群同步的方
式,让各memcache服务器的数据进行同步,从而实现数据的一致性,即保证各memcache的数据是一样的,即使有任何一台memcache发生故障,只要集群种有一台memcache可用就不会出现数据丢失,当其他memcache重新加入到集群的时候可以自动从有数据的memcache当中自动获取数据并提供服务。
repcached 是一个为 memcached 设计的插件,它提供了数据复制和同步的功能。通过安装和使用 repcached,可以构建一个高可用的 memcached 集群,其中数据可以在多个节点之间进行复制和同步,以减少单点故障的风险,并提高系统的容错能力。
准备两台memcached服务器,通过yum安装memcached。
yum install memcached -y
安装依赖:
- yum -y install libevent libevent-devel
- yum -y install gcc gcc-c++ autoconf automake make
获取repcached:
wget https://jaist.dl.sourceforge.net/project/repcached/repcached/2.2.1-1.2.8/memcached-1.2.8-repcached-2.2.1.tar.gz
解压安装:
- tar xvf memcached-1.2.8-repcached-2.2.1.tar.gz
- cd memcached-1.2.8-repcached-2.2.1
- ./configure --prefix=/usr/local/repcached --enable-replication
vim memcached.c
删去第57、59行:
编译安装:
make && make install
验证是否可执行:
- echo 'PATH=/usr/local/repcached/bin:$PATH' > /etc/profile.d/repcached.sh
- . /etc/profile.d/repcached.sh
memcached -d -u memcached -x 10.1.1.20
这条命令意思是以守护进程方式启动Memcached服务,并且允许来自10.1.1.20的连接。
10.1.1.20是对端memcached服务器 (memcached2) 的IP。
安装telnet:
yum install -y telnet
连接memcached1并存储数据:
telnet 10.1.1.10 11211
连接memcached2查看数据是否同步:
安装python-memcached:
python-memcached是一个软件包,允许 Python 程序通过 Memcached 协议与 Memcached 服务器通信,以存储和检索数据。
yum -y install python-memcached
编写python脚本:
连接到 Memcached 服务器,从中存储一些键值对,再检索出来并打印出来。
- #!/usr/bin/env python
- #coding:utf-8
-
- import memcache
- m = memcache.Client(['10.1.1.10:11211'], debug=True)
- for i in range(10):
-
- m.set("key%d" % i,"v%d" % i)
- ret = m.get('key%d' % i)
- print ret
运行python脚本:
- chmod +x m.py
- ./m.py
查看对端memcached数据是否同步:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。