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. cgLib生成动态代理

    package com.stono.cglib; import java.lang.reflect.Method; import net.sf.cglib.proxy.Enhancer; import ...

  2. 大型网站制作前端使用PHP后台逻辑用 Java

    对于网站团队,大概可以按照职责分为前端.后端.架构三种角色. 前端:负责所有和用户有交互的产品,包括 WEB以及手机客户端 后端:负责各种业务 API 的开发,以及服务器端其他系统的开发 架构:负责设 ...

  3. Dockerfile的书写规则及指令使用方法

    Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将读取Dockerfile,根据指令生成定制的ima ...

  4. KB奇遇记(7):不靠谱的项目实施计划

    在ERP项目启动前期,项目组两方项目经理和我等几个人单独跟总裁开会,讨论了初步的ERP实施计划,本来第一期上线只是考虑上其中一家工厂而已,结果临时加入了深加工的工厂.本来项目组预定计划是2017年1月 ...

  5. Angular企业级开发(6)-使用Gulp构建和打包前端项目

    1.gulp介绍 基于流的前端自动化构建工具,利用gulp可以提高前端开发效率,特别是在前后端分离的项目中.使用gulp能完成以下任务: 压缩html.css和js 编译less或sass等 压缩图片 ...

  6. ZLG_GUI和3D显示的移植

    最近学习NRF51822,想在OLED上移植个强大的GUI ,本来想学习emWIN的,甚至想直接学习自带GUI的嵌入式操作系统RTThread,但是......哎,太懒了.....现在觉得ZLG_GU ...

  7. js判断为空Null与字符串为空简写方法

    下面就是有关判断为空的简写方法.   代码如下: if (variable1 !== null || variable1 !== undefined || variable1 !== '') {  v ...

  8. CocoaPods 2016最新安装和使用说明

    cocoapods 简介: CocoaPods是OS X和iOS下的一个第三类库管理工具,通过CocoaPods工具我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所 ...

  9. C++ 头文件系列(ios)

    1 简介 我们都知道,平时常用的那些标准流,诸如iostream.ofstream.ifstream等等,其实都是对应的basic_XXX模版的实例类. 而这些basic_XXX类模版又都是继承自同一 ...

  10. CSS Flexbox 学习指南、工具与框架

    Flexbox 是一种更有效的布局方式,它能更好的分配容器空间,并控制项目的对齐.虽然,掌握它的理论有些复杂,但幸运的是,我们可以借助开放的网络来学习并逐步掌握它. 在本文中,我们整合了一些最佳的 F ...