1、介绍
    repcached是日本人开发的实现memcached复制功能,它是一个单 master单 slave的方案,但它的master/slave都是可读写的,而且可以相互同步,如果 master坏掉, slave侦测到连接断了,它会自动 listen而成为 master;而如果 slave坏掉, master也会侦测到连接断,它就会重新 listen等待新的 slave加入 
    repcached的安装有两种方式,一种是直接对应的repcached版本,其包含repcached和memcached两个包。直接安装该版本, 即完成了repcached和memcached的安装,不用再独立安装memcached。另一种是一个独立的repcached补丁包,将其作为 memcached的补丁,需要单独安装memcached,然后再为其打上该补丁。在多数情况下,都采用第一种安装方法。
 
2、实验环境:
两台测试机,ip分别为192.168.1.105和192.168.1.106,在其上安装repcached,并设置两台服务器互为主从。
 
使用整合了repcached和memcached的版本安装:
安装libevent:
-stable.tar.gz
cd libevent--stable
./configure --prefix=/usr/local/libevent && make && make install 

安装repcached:

wget https://github.com/usecide/repcached/archive/master.zip
unzip memcached-repcached.zip
cd memcached-repcached
./autogensh
./configure --prefix=/usr/local/repcached --enable-64bit --enable-replication --with-libevent=/usr/local/libevent
make && make install
使用repcached补丁包安装的方法:
下载补丁包,目前补丁包最高对应的memcached是1.2.8
wget http://sourceforge.net/projects/repcached/files/repcached/2.2.1-1.2.8/repcached-2.2.1-1.2.8.patch.gz/download
下载对应版本的memcached
wget https://memcached.googlecode.com/files/memcached-1.2.8.tar.gz

.tar.gz
-.patch.gz
cd memcached-
-.patch
./configure --prefix=/usr/local/memcached --enable-64bit --enable-replication --with-libevent=/usr/local/libevent
make && make install
如果在编译时出现如下错误:
memcached.c: Infunction ‘add_iov’:
memcached.c::error: ‘IOV_MAX’ undeclared (first use in this function)
memcached.c::error: (Each undeclared identifier is reported only once
memcached.c::error: for each function it appears in.)
]: ***[memcached-memcached.o] Error
]: Leavingdirectory `/root/memcached/memcached--repcached-'
]: ***[all-recursive] Error
]: Leavingdirectory `/root/memcached/memcached--repcached-'

则需要手动修改源文件memcached.c
将
  /* FreeBSD 4.x doesn't have IOV_MAXexposed. */
  #ifndef IOV_MAX
  #if defined(__FreeBSD__) ||defined(__APPLE__)
  # define IOV_MAX
  #endif
  #endif
修改为:
  /* FreeBSD 4.x doesn't have IOV_MAXexposed. */
  #ifndef IOV_MAX
  /*#if defined(__FreeBSD__) ||defined(__APPLE__)*/
  # define IOV_MAX
  #endif
  /*#endif*/
启动:
分别在两台机上启动repcached如下:
105:
/usr/local/repcached/bin/memcached -u memcached -l  -m  -x  -d

106:

/usr/local/repcached/bin/memcached -u memcached -l  -m  -x  -d
参数简单说明:
-u:指定启动memcached的用户,该用户需要事先创建
-l:指定memcached监听的本地ip地址
-p:指定memcached监听的本地的tcp端口,默认为11211
-m:指定memcached启动后占用的内存空间大小,单位为M
-x:指定repcached的master的ip地址,需要从master同步数据
-X:指定从master同步数据时的端口,默认为11212
-d:将其作为守护进程放入后台运行
测试:
在105上进行如下操作:
telnet
set key1
hello

在106上查看:

telnet
get key1
当看到显示
VALUE key1
hello
即代表数据成功实现同步,反之测试亦然。

Repcached实现memcached复制的更多相关文章

  1. memcached复制-repcached

    1.前言 由于memcached把数据都放到内存里,因此性能是极高的,正因为如此,不可避免会造成数据丢失,repcached就派上用场了,它可以实现memcached的主从复制 2.安装repcach ...

  2. 通过repcached实现memcached主从复制

    一.环境 服务器A:ubuntu server 12.04(192.168.1.111) 服务器B:ubuntu server 12.04 (47.50.13.111) 二.memcached安装 s ...

  3. Memcached实战之复制----基于repcached的主从【转】

    由于 Memcached 自己没有防止单点的措施,因为为了保障 Memcached 服务的高可用,我们需要借助外部的工具来实现高可用的功能.本文引入 Repcached 这个工具,通过使用该工具我们可 ...

  4. Memcached高可用组件之repcached

    在前边的tomcat session server msm的那篇博客我们用memcached做tomcat session服务器,默认官方memcached是不支持主从同步的,为了解决memcache ...

  5. 非root用户Memcached repcached安装

    安装memcached前先要确定系统是否安装了gcc: 1.解压安装包: tar -zxf memcached-1.2.8-repcached-2.2.tar.gz 2.编译: 系统应安装了libev ...

  6. Memcached repcached 高可用

    Memcached + repcached 高可用环境 repcached 就是一个让memcached的机器能够互为主从,前端可以加一台HAProxy,后端两台memcached互为主从后,写入任何 ...

  7. memcached学习(5). memcached的应用和兼容程序

    mixi在提供服务的初期阶段就使用了memcached. 随着网站访问量的急剧增加,单纯为数据库添加slave已无法满足需要,因此引入了memcached. 此外,我们也从增加可扩展性的方面进行了验证 ...

  8. memcached全面剖析--5

    memcached的应用和兼容程序 mixi案例研究 mixi在提供服务的初期阶段就使用了memcached. 随着网站访问量的急剧增加,单纯为数据库添加slave已无法满足需要,因此引入了memca ...

  9. 【转】centos安装memcached+php多服务器共享+session多机共享问题

    参考博文: centos安装memcached 源码安装 Yum安装Memcache Memcached内存分配优化及使用问题 <转>php+memcached 实现session共享 P ...

随机推荐

  1. Java之模板方法模式(Template Method)

    Java之模板方法模式(Template Method) 1. 概念:定义一个算法的骨架,而将一些实现步骤延迟到子类中. 把不变的行为搬到超类,去除子类中重复的代码来体现他的优势. 2. UML图: ...

  2. MyBatis中别名的设置

    在sqlMapperConfig中进行设置: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYP ...

  3. C++中的Traits技法

    Traits广泛应用于标准程序库.Traits classes使得"类型相关信息"在编译期可用. 认真读完下面的示例,你应该就懂了Traits技法,其实并不难. #include ...

  4. 部署JForum 2.1.9遇到的问题及解决方法

    1. 主要问题是出在连接数据库和创建表阶段,当我们配置好MySQL的各种参数后,创建表的时候会报错: 原因:主要是由于建表的SQL语句和MySQL的版本不一致导致的. 解决办法:简单来说,在MYSQL ...

  5. .Net多线程编程—误用点分析

    1 共享变量问题 错误写法: 所有的任务可能会共享同一个变量,所以输出结果可能会一样. public static void Error() { ;i<;i++) { Task.Run(() = ...

  6. puppet来管理文件和软件包

    puppet来管理文件和软件包 1 exec的使用,可以运行shell命令 为配置文件添加配置,指示写了关键部分,其他配置省略没写 代码示例如下: [root@pup manifests]# cat ...

  7. Redis系列四(keepalived+lvs搭建负载均衡)

    1.安装Keepalived(主备服务器都要安装) 10.8.80.218  主服务器 10.8.80.217  备服务器 10.8.80.200  虚拟IP $ wget http://www.ke ...

  8. Swift 实现俄罗斯方块详细思路解析(附完整项目)

    一:写在开发前 俄罗斯方块,是一款我们小时候都玩过的小游戏,我自己也是看着书上的思路,学着用 Swift 来写这个小游戏,在写这个游戏的过程中,除了一些位置的计算,数据模型和理解 Swift 语言之外 ...

  9. C#在win10(win8)下读写记事本注意事项

    分析:由于windows10或者windows8系统机制问题,C#在读写txt文件的时候,可能会出现如下问题(对路径“”的访问被拒绝): 解决: 1.我们在C盘下面新建立一个记事本,会发下类似如下报错 ...

  10. Xamarin组件包 Xamarin.ToolKit

    一  简介 Xamarin.ToolKit是个人在使用xamrin.froms开发2年中,因实际项目需要所自定义的组件包.该组件包采用xamarin.froms方式封装,用户可像普通forms控件那样 ...