我们来配置一个一主两从的服务,根据前面写的已经配置好的redis基础上进行主从配置

一:进入redis的配置目录

cd /usr/local/redis

创建下面3个目录,命令为:
make -p /usr/local/redis/master /usr/local/redis/slave1 /usr/local/redis/slave2

复制 redis.conf 到这个3个目录

cp /usr/local/redis/redis.conf  /usr/local/redis/master/redis.conf

依次复制redis.conf到另外2个从配置目录

二:配置项

2.1)修改端口为master->1000, slave1->2000, slave2->3000

vi /usr/local/redis/master/redis.conf

相应的修改其它2个从配置文件

2.2) 修改pidfile和logfile
在redis.conf中找到pidfile和logfile
pidfile /usr/local/redis/master/redis.pid
logfile /usr/local/redis/master/redis.log

相应的修改其它2个从配置文件slave1,slave2

2.3) 把启动方式设置为后台常驻进程方式
daemonize yes

修改主从所有的配置文件

2.4) 当然我们还可以设置外网访问的ip,(下面的实践没有设置,简单点)
默认就是绑定到了127.0.0.1

三:启动3个redis

/usr/local/redis/bin/redis-server /usr/local/redis/master/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/slave1/redis.conf
/usr/local/redis/bin/redis-server /usr/local/redis/slave2/redis.conf

四:客户端连接redis

4.1)连接slave1:
./bin/redis-cli -h 127.0.0.1 -p 2000

然后输入下面的命令查看服务器信息:

127.0.0.1:> info Replication
# Replication
role:master
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

# Replication
role:master

查看其它2台服务器得到的都是同样的信息

五:那么下面开始主从复制的配置

修改2台从服务器的配置文件
vi /usr/local/redis/slave1/redis.conf
设置为 slaveof 127.0.0.1 1000
如下图:

2台从服务器配置完成后,重启redis,查看redis是否重启成功
ps -ef|grep redis

主服务器不需要修改配置

六:验证

6.1)登录进从服务器slave1

[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p
127.0.0.1:> info replacation
# Replication
role:slave
master_host:127.0.0.1
master_port:
master_link_status:up
master_last_io_seconds_ago:
master_sync_in_progress:
slave_repl_offset:
slave_priority:
slave_read_only:
connected_slaves:
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

6.2)登录进主服务器master:

[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p
127.0.0.1:> info replication
# Replication
role:master
connected_slaves:
slave0:ip=127.0.0.1,port=,state=online,offset=,lag=
slave1:ip=127.0.0.1,port=,state=online,offset=,lag=
master_repl_offset:
repl_backlog_active:
repl_backlog_size:
repl_backlog_first_byte_offset:
repl_backlog_histlen:

6.3)打开3个客户端窗口,分别连上主服务器和2个从服务器
master服务器用set命令设置一个值:
[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p 1000
127.0.0.1:1000> set test testslave
OK

查看2台从服务器是否获取到正确的值:
[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p 2000
127.0.0.1:2000> get test
"testslave"

[root@localhost redis]# ./bin/redis-cli -h 127.0.0.1 -p 3000
127.0.0.1:3000> get test
"testslave"

全部得到正确的值,说明配置就成功了

参考:

http://doc.redisfans.com/topic/replication.html

redis主从复制配置(1)的更多相关文章

  1. Redis主从复制配置+哨兵模式

    架构设计: master:s0 slave:s1.s2 主机映射信息如下: 192.168.32.100 s0 192.168.32.101 s1 192.168.32.102 s2 1.安装Redi ...

  2. Windows环境和Linux环境下Redis主从复制配置

    Windows环境下和Linux环境下配置Redis主从复制基本上一样,都是更改配置文件.Windows环境下修改的配置文件是:redis.windows.conf.redis.windows-ser ...

  3. windows下Redis主从复制配置(报错:Invalid argument during startup: unknown conf file parameter : slaveof)

    主从复制配置中的遇到的异常: Invalid argument during startup: unknown conf file parameter :  slaveof 把Redis文件夹复制两份 ...

  4. redis主从复制配置

    master配置 主要是下面配置 # ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the # intern ...

  5. redis的主从复制配置

    redis的主从复制配置 一.     原理 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架 ...

  6. 实现Redis的主从复制配置

    实现Redis的主从复制配置比较简单,而且容易明白. 下图是要配置的主从复制结构图: 1.说明 Redis主从复制中一个主服务可以有多个从服务,一个从服务可以有多个从服务. 配置比较简单,只需要更改r ...

  7. 配置Redis主从复制

    [构建高性能数据库缓存之redis主从复制][http://database.51cto.com/art/201407/444555.htm] 一.什么是redis主从复制? 主从复制,当用户往Mas ...

  8. Linux07 /redis的配置、五大数据类型、发布订阅、持久化、主从复制、哨兵配置、集群搭建

    Linux07 /redis的配置.五大数据类型.发布订阅.持久化.主从复制.哨兵配置.集群搭建 目录 Linux07 /redis的配置.五大数据类型.发布订阅.持久化.主从复制.哨兵配置.集群搭建 ...

  9. Redis教程(九):主从复制配置实例

    转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/136.html 一.Redis的Replication: 这里首先需要说明 ...

随机推荐

  1. 魔术方法之__call与__callStatic方法

    <?php class human{ private function t(){ } /** * 魔术方法__call * * @param string $method 获得方法名 * @pa ...

  2. extensions

    extensions.blocklist.enabled

  3. 【python练习题】程序4

    # 题目:输入某年某月某日,判断这一天是这一年的第几天? import time year = input('输入年份: \n') month = input('输入月份: \n') day = in ...

  4. cuda编程-并行规约

    利用shared memory计算,并避免bank conflict:通过每个block内部规约,然后再把所有block的计算结果在CPU端累加 代码: #include <cuda_runti ...

  5. 使用update可以防止并发问题(保证数据的准确性),如果使用select会产生并发问题 ; select * from xx for update 给查询开启事务,默认情况下是没有事物的

    update可以锁住数据防止数据被更新且导致与查询出的数据有误差,如果响应条数为0.说明更新失败 则可以回滚事务;

  6. 解决Maven依赖报错问题

    问题现象:从svn上签下源代码,本地执行打包命令,提示如下错误: [ERROR] Failed to execute goal on project dddwriter: Could not reso ...

  7. 双击jar文件运行程序

    Java应用程序jar文件可以由 JVM(Java虚拟机)直接执行,只要操作系统安装了JVM便可以运行作为Java应用程序的jar文件.可是,很多朋友遇到一个难题,那就是下载了jar文件以后在Wind ...

  8. 使用RestTemplate测试视频上传的Post请求

    以往多用RestTemplate处理接口的调用以及与Ribbon/Feign配合使用调用微服务接口,近日写了一个处理Post文件上传的解决方案,其实就是将后台所需的MultipartFile,在请求P ...

  9. spring boot项目基本结构

    /==================================Controller @Controller public class SimpleController { @Autowired ...

  10. 洛谷P1622释放囚犯

    题目: 这个题很明显是一个区间DP,但是比较不同的是,这个题它很像区间DP的经典题——石子合并. 然后我傻傻的搞了这个题搞了一下午,然后几乎看遍了全网的题解,就只看懂了这个方法,可能是我太菜了吧,但是 ...