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:
  1. -stable.tar.gz
  2. cd libevent--stable
  3. ./configure --prefix=/usr/local/libevent && make && make install

安装repcached:

  1. wget https://github.com/usecide/repcached/archive/master.zip
  2. unzip memcached-repcached.zip
  3. cd memcached-repcached
  4. ./autogensh
  5. ./configure --prefix=/usr/local/repcached --enable-64bit --enable-replication --with-libevent=/usr/local/libevent
  6. make && make install
使用repcached补丁包安装的方法:
下载补丁包,目前补丁包最高对应的memcached是1.2.8
  1. wget http://sourceforge.net/projects/repcached/files/repcached/2.2.1-1.2.8/repcached-2.2.1-1.2.8.patch.gz/download
  2. 下载对应版本的memcached
  3. wget https://memcached.googlecode.com/files/memcached-1.2.8.tar.gz
  4.  
  5. .tar.gz
  6. -.patch.gz
  7. cd memcached-
  8. -.patch
  9. ./configure --prefix=/usr/local/memcached --enable-64bit --enable-replication --with-libevent=/usr/local/libevent
  10. make && make install
  11. 如果在编译时出现如下错误:
  12. memcached.c: Infunction add_iov’:
  13. memcached.c::error: IOV_MAX undeclared (first use in this function)
  14. memcached.c::error: (Each undeclared identifier is reported only once
  15. memcached.c::error: for each function it appears in.)
  16. ]: ***[memcached-memcached.o] Error
  17. ]: Leavingdirectory `/root/memcached/memcached--repcached-'
  18. ]: ***[all-recursive] Error
  19. ]: Leavingdirectory `/root/memcached/memcached--repcached-'
  20.  
  21. 则需要手动修改源文件memcached.c
  22. /* FreeBSD 4.x doesn't have IOV_MAXexposed. */
  23. #ifndef IOV_MAX
  24. #if defined(__FreeBSD__) ||defined(__APPLE__)
  25. # define IOV_MAX
  26. #endif
  27. #endif
  28. 修改为:
  29. /* FreeBSD 4.x doesn't have IOV_MAXexposed. */
  30. #ifndef IOV_MAX
  31. /*#if defined(__FreeBSD__) ||defined(__APPLE__)*/
  32. # define IOV_MAX
  33. #endif
  34. /*#endif*/
启动:
分别在两台机上启动repcached如下:
105:
  1. /usr/local/repcached/bin/memcached -u memcached -l -m -x -d

106:

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

在106上查看:

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

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. iOS核心笔记—源代码管理工具-GIT

    源代码管理工具-GIT 一. git 概述 1. git 简介? 什么是git? > git是一款开源的分布式版本控制工具 > 在世界上所有的分布式版本控制工具中,git是最快.最简单.最 ...

  2. 穷举 迭代 while

    for循环拥有两类: 穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 例:1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花 ...

  3. androidTv界面刷新跳动的问题

    今天刚完成老大要求的新模块,在界面刷新的时候遇到了一些问题:一个scrollview动态的添加控件且控件中的数据进行更换的时候,出现的界面跳动的问题 刚开始以为是界面没有展示完全配合scrollvie ...

  4. [译] 关于 Git 你需要知道的一些事情

    分支和合并 Git 跟其他版本控制系统最大的优势就在于其高级的分支模型. Git 允许而且 鼓励 你在本地使用多个完全独立的分支.这些分支的创建,合并和删除几乎都可以在几秒内完成. 这意味着你可以轻松 ...

  5. java类初始化,使用构造方法

    public class test { /** * java类的初步学习: *   学会使用和类名相同的两种构造方法,对公共类方法的调用: */ public static void main(Str ...

  6. 微信公众号开发总结(Node.js + express + winston)

    关于订阅号.服务号.企业号 官方定位 订阅号:主要偏于为用户传达资讯(类似报纸杂志),认证后每天可以群发一条消息,可达到宣传效果,构建与读者之间更好的沟通和管理模式. 服务号:主要偏于服务交互(类似银 ...

  7. wpf中子窗口的几个问题

    今天研究了一下wpf中的窗口,写这篇文章来总结一下今天的收获.(转载请注明出处~) 总所周知,窗口是windows系统中十分重要的一个元素(从名字上就能体现出来),而一个应用程序总是包含很多窗口(主窗 ...

  8. DLL 导出函数

    DLL的链接方式分为两种:隐式链接和显式链接 DLL导出的函数 和 导出类在调用时,有些区别,这里暂时不讲,直说简单的导出函数: 隐式链接: #include "stdafx.h" ...

  9. Log4net配置与使用简要说明

    log4net详细配置:http://logging.apache.org/log4net/本文描述如有错误,以官网的说明为准;p 一:先来看看log4net中的几个概念: 1. log4net继承机 ...

  10. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...