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. 10款面向HTML5 画布(Canvas)的JavaScript库

    https://www-evget-com/article/2014/4/9/20799.html

  2. spring mvc 注解示例

    springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  3. easyUI draggable组件使用

    easyUI draggable组件使用: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  4. javaScript基础详解(1)

    javaScript基础详解 首先讲javaScript的摆放位置:<script> 与 </script> 可以放在head和body之间,也可以body中或者head中 J ...

  5. LinQ 创建连接、简单增删改查

    LINQ--语言集成查询(Language Integrated Query)是一组用于c#和Visual Basic语言的扩展.它允许编写C#或者Visual Basic代码以查询数据库相同的方式操 ...

  6. 学习计划(一)——JavaScript

    一:与前端之缘 大一时除了上课和社团外不知道要学点什么,但是又不想睡觉打游戏,常常就是啥都想学,photoshop,premiere,After Effects都学,但始终没有明确的目标. 大二时一直 ...

  7. Express之get,pos请求参数的获取

    Express的版本4.X Get query参数的获取 url假设:http://localhost:3000/users/zqzjs?name=zhaoqize&word=cool& ...

  8. viewpager翻页的窗帘效果动画

    前端时间比较忙,好长时间没有更新微博,就工作中出现的部分问题,与大家分享一下. 大家都知道viewpager在android开发中是运用率比较高的控件,现在就其窗帘下过的动画分享. 文章出处:http ...

  9. linux环境下搭建 j2ee环境

    一.JDK安装(安装在/usr/java目录下)1.下载:jdk-7-ea-bin-b26-linux-i586-24_apr_2008.bin地址:http://jx.newhua.com/down ...

  10. ios 学习动画的套路 (一)

    你也肯定喜欢炫酷的动画! 在APP中,动画就是一个点睛之笔!可以给用户增加一些独特的体验感,估计也有许多的和我一样的,看着那些觉得不错的动画,也就只能流口水的孩子,毕竟~不知道从哪里下手去写!会连续的 ...