通过repcached实现memcached主从复制
一、环境
服务器A:ubuntu server 12.04(192.168.1.111)
服务器B:ubuntu server 12.04 (47.50.13.111)
二、memcached安装
sudo apt-get install memcached
安装完成后可以启动一下,看是否安装好了:
# sudo memcached -d -m 128 -p 11211 -u root
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set name 0 0 5
hello
STORED
get name
hello
可以存取数据即代表安装完成。
三、repcached安装
在 https://sourceforge.net/projects/repcached/files/repcached/ 下载repcached安装包(memcached-1.2.8-repcached-2.2.1.tar.gz),然后解压安装:
# tar zxvf memcached-1.2.8-repcached-2.2.tar.gz
# cd memcached-1.2.8-repcached-2.2/
# ./configure --enable-replication
# make
# make install
正常情况下按上面的安装就可以了,但也有可能会遇到以下问题:
1、machine `i686-pc-linux' not recognized 错误
解决办法是在./configure时加上参数:--build=i686-pc-linux-gnu
2、configure: error: no acceptable C compiler found in $PATH See `config.log' for more details.
这是因为没有安装c编译器,安装gcc即可:
# apt-get install gcc
3、memcached.c:696:30: error: ‘IOV_MAX’ undeclared (first use in this function)
把memcached.c中55行~60行代码:
55 /* FreeBSD 4.x doesn't have IOV_MAX exposed. */
56 #ifndef IOV_MAX
57 #if defined(__FreeBSD__) defined(__APPLE__)
58 # define IOV_MAX 1024
59 #endif
60 #endif
换为:
55 /* FreeBSD 4.x doesn't have IOV_MAX exposed. */
56 #ifndef IOV_MAX
57 /*#if defined(__FreeBSD__) defined(__APPLE__)*/
58 # define IOV_MAX 1024
59 #endif
60 /*#endif*/
即把 57 行和60行注释掉。
四、主从配置
我们要把服务器B作为Master,把服务器A作为Slave,首先在服务器A(Master)上配置如下:
# /usr/local/bin/memcached -p 11211 -v -d -u root
replication: listen
在服务器B(Slave)上配置如下:
# /usr/local/bin/repcached -p 11212 -x 47.50.13.111 -v -d -u root
replication: connect (peer=47.50.13.111:11212)
replication: marugoto copying
replication: accept
这里看到出现了一个11212,Memcached默认服务端口是11211,默认同步监听端口是11212。
这一步要确保在Slave上可以telnet上Master服务器。
如果telnet失败,一般会是iptables把11211/11212端口阻止了,打开即可。
可以通过netstat命令查看:
# netstat -tupln grep memcached
tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 2044/memcached
tcp 0 0 0.0.0.0:11212 0.0.0.0:* LISTEN 2044/memcached
tcp6 0 0 :::11211 :::* LISTEN 2044/memcached
udp 0 0 0.0.0.0:11211 0.0.0.0:* 2044/memcached
udp6 0 0 :::11211 :::* 2044/memcached
五、验证
在Master上创建数据:
# telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
set name 0 0 5
atwal
STORED
在Slave上查看数据:
$ telnet 127.0.0.1 11211
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
get name
VALUE name 0 5
atwal
END
可以看到数据已经同步了。
通过repcached实现memcached主从复制的更多相关文章
- Repcached实现memcached复制
1.介绍 repcached是日本人开发的实现memcached复制功能,它是一个单 master单 slave的方案,但它的master/slave都是可读写的,而且可以相互同步,如果 ma ...
- Memcached实战之复制----基于repcached的主从【转】
由于 Memcached 自己没有防止单点的措施,因为为了保障 Memcached 服务的高可用,我们需要借助外部的工具来实现高可用的功能.本文引入 Repcached 这个工具,通过使用该工具我们可 ...
- 非root用户Memcached repcached安装
安装memcached前先要确定系统是否安装了gcc: 1.解压安装包: tar -zxf memcached-1.2.8-repcached-2.2.tar.gz 2.编译: 系统应安装了libev ...
- Memcached高可用组件之repcached
在前边的tomcat session server msm的那篇博客我们用memcached做tomcat session服务器,默认官方memcached是不支持主从同步的,为了解决memcache ...
- Memcached repcached 高可用
Memcached + repcached 高可用环境 repcached 就是一个让memcached的机器能够互为主从,前端可以加一台HAProxy,后端两台memcached互为主从后,写入任何 ...
- 【转】centos安装memcached+php多服务器共享+session多机共享问题
参考博文: centos安装memcached 源码安装 Yum安装Memcache Memcached内存分配优化及使用问题 <转>php+memcached 实现session共享 P ...
- memcached学习(5). memcached的应用和兼容程序
mixi在提供服务的初期阶段就使用了memcached. 随着网站访问量的急剧增加,单纯为数据库添加slave已无法满足需要,因此引入了memcached. 此外,我们也从增加可扩展性的方面进行了验证 ...
- memcached全面剖析--5
memcached的应用和兼容程序 mixi案例研究 mixi在提供服务的初期阶段就使用了memcached. 随着网站访问量的急剧增加,单纯为数据库添加slave已无法满足需要,因此引入了memca ...
- Memcached全面剖析–5. memcached的应用和兼容程序
作者:长野雅广(Masahiro Nagano) 原文链接:http://gihyo.jp/dev/feature/01/memcached/0005 我是Mixi的长野.memcached的连载最 ...
随机推荐
- luogu P3796【模板】AC自动机(加强版)
嘟嘟嘟 这个和某谷的AC自动机模板简单版差不多. 但还是要注意几点的: 1.这个是统计出现次数,而不是是否出现,所以在查询的时候加上这个节点的val后,不能把val标记为-1.那么也就可以说查询的时间 ...
- EntityFrameWork简单操作 EF数据上下文对象操作数据增删改差及批处理
/// <summary> /// EF针对 留言数据库 的 数据上下文对象!!!! /// </summary> static LeaveWordBoradEntities ...
- 安装 centos7
一.安装 省略前面安装操作,直接进入设置界面: 日期.键盘等设置按默认即可,主要是系统安装位置需要设置,点击 系统安装位置,进入设置 最终完成分区: 点击左上角完成按钮 接受更改 开始安装 设置roo ...
- AutoCAD笔记
1.等距离复制:使用菜单栏下“修改->阵列”功能或右侧快捷方式,可以轻松复制,以下是阵列设置界面 2.快捷键-图案填充和渐变色:H+空格 3.画图时时常会用到Ctrl+V,但难免会按成了Ctrl ...
- 协议类接口 - I2C
一.12c总线概述 I2C( Inter-Integrated Circuit,又称IIC)总线是一种串行总线,用 于连接微控制器及其外围设备,硬件图非常简单:一条串行数据线(SDA),一条串行时钟线 ...
- 菜鸟笔记 -- Chapter 6.3 对象
6.3 对象 Java是一门面向对象的程序设计语言,对象是由类抽象出来的,所有的问题都是通过对象来处理的,对象可以操作类的属性和方法解决相应的问题,所以了解对象的产生.操作和生存周期对学习Java语言 ...
- JDBC相关
//原生jdbc操作案例 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; i ...
- 分布式id生成
2016年08月09日 14:15:21 yuanyuanispeak 阅读数:318 编辑 一.需求缘起 几乎所有的业务系统,都有生成一个记录标识的需求,例如: (1)消息标识:message-id ...
- Web前端几种常见的实现水平垂直居中的方法
第一种: 父容器不设置宽度,用定位实现水平垂直居中. <!DOCTYPE html> <html lang="en"> <head> <m ...
- Intellij IDEA切换maven
问题描述: IDEA自带Maven,但不想用,想用自己安装的. 解决方案: File->Settings(快捷键:Ctrl+Alt+S) 这里分为了两个,竟然还有默认配置一说,上面的只是修改了当 ...