memcached复制-repcached
1.前言
由于memcached把数据都放到内存里,因此性能是极高的,正因为如此,不可避免会造成数据丢失,repcached就派上用场了,它可以实现memcached的主从复制
2.安装repcached
下面采用memcached和repcached一起安装的方式
- $ cd usr/local/src
- $ wget https://downloads.sourceforge.net/project/repcached/repcached/2.2.1-1.2.8/memcached-1.2.8-repcached-2.2.1.tar.gz
- $ tar -zxvf memcached-1.2.8-repcached-2.2.1.tar.gz
- $ cd memcached-1.2.8-repcached-2.2.1
- $ ./configure --enable-replication --program-transform-name=s/memcached/repcached/
- error: 'IOV_MAX' undeclared (first use in this function) #centos编译会报这个错,需要修改代码
- $ vi memcached.c
- /* FreeBSD 4.x doesn't have IOV_MAX exposed. */
- #ifndef IOV_MAX
- #if defined(__FreeBSD__) || defined(__APPLE__)
- #define IOV_MAX 1024
- #endif
- #endif
- $ make && make install
3.测试复制
为了方便,下面的测试是在同一台机器上开启两个端口来进行主从复制的
- $ memcached -p 11211 -d -v #-d表示守护进程 -v是打印日志
- replication: listen
- replication: accept
- #按下Ctrl+c,在本机添加从服务器,-x是主cache的ip
- $ memcached -p 11212 -d -x 192.168.56.10 -v
- replication: connect (peer=192.168.56.10:11212)
- replication: marugoto copying
- replication: start
- #分别连接测试主从同步
- $ telnet localhost 11211
- Trying ::1...
- Connected to localhost.
- Escape character is '^]'.
- set myname 0 0 6
- pigfly
- STORED
- quit
- Connection closed by foreign host.
- $ telnet localhost 11212
- Trying ::1...
- Connected to localhost.
- Escape character is '^]'.
- get myname
- VALUE myname 0 6
- pigfly #从cache已经能获取到主cache的数据了,说明主复制到从没有问题
- END
- set age 0 0 2
- 23
- STORED
- quit
- Connection closed by foreign host.
- $ telnet localhost 11211
- Trying ::1...
- Connected to localhost.
- Escape character is '^]'.
- get age
- VALUE age 0 2
- 23 #这里主cache也拿到了从cache的数据,说明从复制到主也没问题
- END
- quit
- Connection closed by foreign host.
- $ telnet localhost 11212
- Trying ::1...
- Connected to localhost.
- Escape character is '^]'.
- delete age
- DELETED
- quit
- Connection closed by foreign host.
- $ telnet localhost 11211
- Trying ::1...
- Connected to localhost.
- Escape character is '^]'.
- get age #删除也是同步的
- END
4.总结
简单配置几下就可以实现memcached的备份,是不是很开森?!考虑下面的一些情况:
- repcached只支持memcached1.2.x,好几年没更新过了
- 当有一台memcache宕机,repcached不会自动帮你切换到另外一台,要手动切换,考虑用缓存代理+主从复制
memcached复制-repcached的更多相关文章
- Repcached实现memcached复制
1.介绍 repcached是日本人开发的实现memcached复制功能,它是一个单 master单 slave的方案,但它的master/slave都是可读写的,而且可以相互同步,如果 ma ...
- Memcached实战之复制----基于repcached的主从【转】
由于 Memcached 自己没有防止单点的措施,因为为了保障 Memcached 服务的高可用,我们需要借助外部的工具来实现高可用的功能.本文引入 Repcached 这个工具,通过使用该工具我们可 ...
- Memcached介绍及相关知识
memcached简介 1.memcached是一个免费开源的.高性能的,具有分布式内存对象的缓存系统.memcached通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括 ...
- Ubunut 13.04下配置memcached、 python MySQLDB,python-memcache模块等
一开始系统使用的是163的源,没有安装成功memcached,换了cn99的也不行,后来换了台湾的源,以下步骤才得以顺利进行. 更换源的方法可以参看我以前的帖子. 安装memached:sudo ap ...
- memcache集群
实现memcache集群 一:memcache本身没有redis锁具备的数据持久化功能,比如RDB和AOF都没有,但是可以通过做集群的方式,让各memcache的数据进行同步,实现数据的一致性,即 ...
- centos安装memcache与telnet
####################linux下安装memcache过程######################http://www.cnblogs.com/zgx/archive/2011/ ...
- Linux一键安装PHP/JAVA环境OneinStack
OneinStack 是一款PHP/JAVA环境一键配置工具. OneinStack包含以下组合 lnmp(Linux + Nginx+ MySQL ...
- OpenStack Grizzly详细安装指导
一.环境介绍: 控制节点 eth0 (10.10.10.51), eth1 (192.168.100.51) 网络节点 eth0 (10.10.10.52), eth1 (10.20.20.52), ...
- 通过yum安装 memcache
. 通过yum安装 复制代码代码如下: yum -y install memcached#安装完成后执行:memcached -h#出现memcached帮助信息说明安装成功 2. 加入启动服务 复制 ...
随机推荐
- 读Zepto源码之Form模块
Form 模块处理的是表单提交.表单提交包含两部分,一部分是格式化表单数据,另一部分是触发 submit 事件,提交表单. 读 Zepto 源码系列文章已经放到了github上,欢迎star: rea ...
- SQL数据库的基础操作
一,认识SQL数据库 美国Microsoft公司推出的一种关系型数据库系统.SQLServer是一个可扩展的.高性能的.为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有 ...
- C++内联函数(03)
在C++中我们通常定义以下函数来求两个整数的最大值: 代码如下: int max(int a, int b){ return a > b ? a : b;} 为这么一个小的操作定义一个函数的好处 ...
- PHP的取整函数
PHP的取整函数有四个,分别是ceil.floor.round和intval,下面对它们进行一一介绍: 1. ceil(x):向上舍入为最接近的整数. 返回不小于 x 的下一个整数,x 如果有小数部分 ...
- c++连接数据库 在vc6.0
配置相关环境 我的mysql安装路径为E:\mysql-5.5.28-win32所以要在VC中设置include路径和lib的路径. 添加MySql的include目录到VC工作台中Project-& ...
- 删除链表中等于给定值val的所有节点。
样例 给出链表 1->2->3->3->4->5->3, 和 val = 3, 你需要返回删除3之后的链表:1->2->4->5. /** * D ...
- Mayor's posters
Mayor's posters Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Sub ...
- 【转】解决memcached启动失败
原文:http://chenzhou123520.iteye.com/blog/1925196 linux上启动Memcache报错: 原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib* ...
- redhat7 Samba
1.先安装Samba服务 yum install -y samba samba-client 2.配置文件 vi /etc/samba/smb.conf --主配置文件 [global] --全局 ...
- 外键删除(T-SQL Drop Foreign Key)
列出某张表相关的 FK Name select distinct name from sys.objects where object_id in ( select fk.constraint_o ...