今天想在Ubuntu上安装一个Redis服务器并配置Master-Slave,一开始懒得连VPN就查了一些国内的文章,不知道是没有亲自验证过的转载文章,还是版本问题造成的,发现按照步骤都没能成功完成配置。因此自己找到一篇国外的文章(链接在本章最后的参考文章),按照其步骤成功配置了Redis的Master-Slave模式。我将所有步骤整理下来,希望对Redis的Master-Slave模式感兴趣的同学能起到一点帮助作用。

系统配置

Windows 10 专业版

VMWare 11.1.0

Ubuntu 12.04 LTS

Redis-Server 2.2.12

注:本文旨在介绍安装Redis并配置Master-Slave,因此在VM上安装Ubuntu的过程请参见其他相关文章。

Master的安装步骤

Step 1 - 在虚拟机(192.168.107.130)上安装Redis:

sudo apt-get install redis-server

Step 2 - 配置Master:

sudo vim /etc/redis/redis.conf

由于我们需要配置Master-Slave模式,因此要将Redis的IP绑定到公共IP上(也就是其他机器能访问到的IP,我自己在虚拟机上使用的是NAT模式,安装Master的虚拟机IP为:192.168.107.130)。

  • Step 2.1 - 修改bind节点:

在redis.conf中找到:

bind 127.0.0.1

将其修改为(其中192.168.107.130即为Master的IP地址):

bind 192.168.107.130

Step 2.2 - 设置访问密码:

在redis.conf中找到:

requirepass foobared

将其修改为(123456即为你自己想要设定的Redis访问密码,你可以自行设定喜欢的密码):

requirepass 123456

设置完之后,保存redis.conf文件。

Step 2.3 - 重启Redis服务:

sudo /etc/init.d/redis-server restart

Master的设置就这样完成了,怎么样,是不是很简单?接下去我们继续配置Slave。

Slave的安装步骤

Step 1 - 在另外一台虚拟机(192.168.107.131)上安装Redis,步骤和Master完全一样:

sudo apt-get install redis-server

Step 2 - 配置Slave:

sudo vim /etc/redis/redis.conf

同样的将Slave的IP绑定到公共IP上,即安装Slave的虚拟机IP:192.168.107.131。

  • Step 2.1 - 修改bind节点:

在redis.conf中找到:

bind 127.0.0.1

将其修改为(其中192.168.107.131即为Slave的IP地址):

bind 192.168.107.131

  • Step 2.2 - 指定Master的IP+Port:

在redis.conf中找到:

slaveof <masterip> <masterport>

将其修改为(其中192.168.107.130即为Master的IP地址,6379是Master上Redis的默认端口):

slaveof 192.168.107.130 6379

  • Step 2.2 - 指定Master的验证密码:

在redis.conf中找到:

masterauth <master-password>

将其修改为(我们在配置Master的过程中设置了Master的密码是:123456):

masterauth 123456

需要注意的是:本例中,我们并没有为Slave设置密码。设置完之后,保存redis.conf文件。

Step 2.3 - 重启Redis服务:

sudo /etc/init.d/redis-server restart

测试

在Master(192.168.107.130)中依次执行如下命令:

redis-cli -h 192.168.107.130  //必须通过-h指定启动redis-cli的ip
AUTH 123456 //由于我们设置了master的密码为123456,因此必须使用AUTH命令进行授权,否则无权执行操作
set name1 "Daniel" //添加一个key-value
set name2 "Sophie" //再添加一个key-value
keys * //查看是否已经正确插入

在Slave(192.168.107.131)中依次执行如下命令:

redis-cli -h 192.168.107.131  //必须通过-h指定启动redis-cli的ip
keys * //查看是否已经同步到Slave

可以看到,Slave已经将Master中存储的内容同步过来了,大家也可以继续自行往Master中添加一些数据进行测试。

参考文章

http://bencane.com/2013/11/12/installing-redis-and-setting-up-master-slave-replication/

Ubuntu 12.04 安装Redis并设置主从复制的更多相关文章

  1. ubuntu 12.04 安装 redis

    原文地址:http://ijonas.com/software-development/nosql/412/ 1 Installing Redis 2.6.x on Ubuntu 12.04 and ...

  2. ubuntu 12.04 安装Docker 实战

    2016-3-8 从网络服务商那里申请到一台Ubuntu测试服务器,用来测试安装Docker环境. 注:本人初学Docker,对Linux命令也仅是稍稍了解,如有错误,烦请告知. 查看系统相关信息 可 ...

  3. 在Ubuntu 12.04安装和设置Samba实现网上邻居共享

    转载:http://www.startos.com/ubuntu/tips/2012031333097.html          有微小改动. Samba 是一款功能强大的共享工具,可以实现与win ...

  4. Ubuntu 12.04 安装 Apache2+PHP5+MySQL

    LAMP是Linux web服务器组合套装的缩写,分别是Apache+MySQL+PHP.此教程教大家如何在Ubuntu 12.04 LTS server 上安装Apache2服务器,包括PHP5(m ...

  5. Ubuntu 12.04 安装MySQL

    本文地址:http://www.cnblogs.com/yhLinux/p/4012689.html 本文适合新手入门. 本文是对 Ubuntu 12.04 环境下安装 MySQL 的记录,通过这两天 ...

  6. 【转】Ubuntu 12.04 安装JDK 8和Eclipse

    原文网址:http://blog.csdn.net/yechaodechuntian/article/details/24853813 Ubuntu 12.04 下安装 JDK8 方法一:(缺点是安装 ...

  7. ubuntu 12.04 安装 nginx+php+mysql web服务器

    Nginx 是一个轻量级,以占用系统资源少,运行效率而成为web服务器的后起之秀,国内现在很多大型网站都以使用nginx,包括腾讯.新浪等大型信息网站,还有淘宝网站使用的是nginx二次开发的web服 ...

  8. [转] ubuntu 12.04 安装 nginx+php+mysql web服务器

    Nginx 是一个轻量级,以占用系统资源少,运行效率而成为web服务器的后起之秀,国内现在很多大型网站都以使用nginx,包括腾讯.新浪等大型信息网站,还有淘宝网站使用的是nginx二次开发的web服 ...

  9. Ubuntu 12.04 安装JDK 8和Eclipse

    Ubuntu 12.04 下安装 JDK8 方法一:(缺点是安装时附加openjdk等大量程序并无法去除,长处是安装简单) $ sudo apt-get install eclipse 方法二:(长处 ...

随机推荐

  1. 关于微信小程序中组件和页面对全局样式的继承性

    1.组件只能继承全局样式中的font和color(backgroundcolor不继承) 2.页面可以继承全局样式中所有样式

  2. dj django与ajax交互

    Ajax简介 AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”.即使用Javascript语言与服务器进行异步交互,传输的数 ...

  3. i2c设备驱动注册

      Linux I2C设备驱动编写(二) 原创 2014年03月16日 23:26:50   在(一)中简述了Linux I2C子系统的三个主要成员i2c_adapter.i2c_driver.i2c ...

  4. 大道至简第一章和java理论学时第一节。感受。

    这周上了本学期的第一节java课程.课件上说了一些学习java的基本思想.举了个“愚公移山”的例子.这可能就像刚接触一门新的语言,来练习输出“HelloWorld”一样,已成惯例. “愚公移山”的这个 ...

  5. Lombok自定义annotation扩展含Intellij插件

    Lombok简介 Lombok(https://projectlombok.org/)  提供了以注解的形式为java对象增加属性和方法,这使得原来冗长的java源文件变的简洁(不需要再使用ide去生 ...

  6. Swagger UI教程 API 文档神器 搭配Node使用

    ASP.NET Web API 使用Swagger生成在线帮助测试文档 Swagger 生成 ASP.NET Web API 前言 swagger ui是一个API在线文档生成和测试的利器,目前发现最 ...

  7. 最通熟易懂的Hadoop HDFS实践攻略

    HDFS是用来解决什么问题?怎么解决的? 如何在命令行下操作HDFS? 如何使用Java API来操作HDFS? 在了解基本思路和操作方法后,进一步深究HDFS具体的读写数据流程 学习并实践本文教程后 ...

  8. hive sql 查询一张表的数据不在另一张表中

    有时,我们需要对比两张表的数据,找到在其中一张表,不在另一张表中的数据 hql 如下: SELECT * FROM (SELECT id FROM a WHERE dt = '2019-03-17' ...

  9. ASP.NET Web API 框架研究 Web Host模式路由及将请求转出到消息处理管道

    Web Host 模式下的路由本质上还是通过ASP.NET 路由系统来进行路由的,只是通过继承和组合的方式对ASP.NET路由系统的内部的类进行了一些封装,产生自己专用一套类结构,功能逻辑基本都是一样 ...

  10. 16位CRC校验_Delphi

    unit Modbus_main; {$mode objfpc}{$H+} interface uses Classes, SysUtils, FileUtil, Forms, Controls, G ...