一.redis的主从操作流程

  1. 准备三个redis配置文件

#进入redis的配置文件夹,准备好这几个文件,6379不用管,默认的,和这次操作无关
[root@qishi ~]# cd /etc/redis/ [root@qishi redis]# ll
total 80
-rw-r--r--. 1 root root 57774 Apr 20 15:31 6379.conf
-rw-r--r--. 1 root root 183 Apr 20 16:32 6380.conf #主数据库master
-rw-r--r--. 1 root root 206 Apr 20 16:36 6381.conf    #从数据库slave
-rw-r--r--. 1 root root 206 Apr 20 16:36 6382.conf    #从数据slave

  2.写入以下配置

#注意,一下内容指定的路径一定要有,就是说要自己先创建好,否则可能报错
port 6380
daemonize yes
pidfile /etc/redis/data/6380/redis.pid
loglevel notice
logfile "/etc/redis/data/6380/redis.log"
dbfilename dump.rdb
dir /etc/redis/data/6380
protected-mode no

  3.目前这三个配置文件配置一样,我们只需修改端口,让他们的端口不用即可(路径也不一样)

#需要在配置所在的文件夹中操作,同理其他两个配置文件指定路径也要创建好
#可以使用这一条命令通过6380.conf生成6381和6382的配置文件
sed "s/6380/6381/g" 6380.conf > 6381.conf
sed "s/6380/6382/g" 6380.conf > 6382.conf

  4. 在6381和6382下添加以下配置,使之成为从数据库

slaveof 127.0.0.1 6380

#可以使用以下一行命令直接追加写入到两个从库的配置文件中
echo "slaveof 127.0.0.1 6380" >>6381.conf
echo "slaveof 127.0.0.1 6380" >>6382.conf

  

  

  5. 确认三个配置文件无误

  6. 开启这三个redis服务,确保三个服务启动正常

[root@qishi redis]# redis-server /etc/redis/6380.conf
[root@qishi redis]# redis-server /etc/redis/6381.conf
[root@qishi redis]# redis-server /etc/redis/6382.conf

  

  

  7. 查看redis主从数据库的状态

redis-cli -p 6380 info replication
redis-cli -p 6381 info replication
redis-cli -p 6382 info replication

  

  

  

  

  8. 验证redis主从复制情况

    (1)先验证三个数据库是否能正常连接

redis-cli -p 6380
redis-cli -p 6381
redis-cli -p 6382

  

  

  

    ( 2 ) 在6380上面写入数据,查看6381和6382是否能够正常同步

      

      

      

    (3)在从数据库写入数据

      

    

  9. 手动进行主从复制故障切换

    (1) 杀掉6380的进程,模拟主库故障

kill -9 进程ID

  

    (2)在6381和6382上手动指定一个主库(我现在指定6382为主库)

  ( 3 ) 在6382的redis上执行这一行命令

slaveof no one  #去除从库身份

  (4) 在6381上执行以下命令,将原来的指向6380改为指向6382

  原来的配置指向:

  

#去除原来的从库身份并且重新指定主库,要确保要指定的主库已经执行了slaveof no one

slaveof no one
slaveof 127.0.0.1 6382 

   

  (5) 验证新的主从架构状态

    在6382上查看主从信息

    

  (6) 验证新的主从架构是否可以正常写入数据,同步数据

  如果可以,说明主从正常

  

  

  如果想永久生效必须:去修改配置文件

redis的主从同步的更多相关文章

  1. Redis的主从同步复制

    先来看一下Redis的主从同步复制的原理: 在Slave启动并连接到Master之后,它将主动发送一条SYNC命令.此后Master将启动后台存盘进程,同时收集所有接收到的用于修改数据集的命令,在后台 ...

  2. Redis 的主从同步(复制)

    Redis 的主从同步(复制) Redis 的主从同步(复制) 什么是主从同步(复制) 假设有两个 redis 实例 ⇒ A 和 B B 实例的内容与 A 实例的内容保持同步 那么称 A 实例是主数据 ...

  3. Redis的主从同步手动执行故障切换

    1.准备三个redis配置文件,通过端口的区分,启动三个redis数据库实例,然后配置主从复制. # a6371.conf port 6371 daemonize yes pidfile /data/ ...

  4. redis之主从同步

    很多企业都没有使用到 Redis 的集群,但是至少都做了主从.有了主从,当 master 挂掉的时候,运维让从库过来接管,服务就可以继续,否则 master 需要经过数据恢复和重启的过程,这就可能会拖 ...

  5. redis 安装 主从同步 哨兵模式

    一.redis 的安装1.先将安装包放到linux的一个文件夹下面 2.解压压缩包如图所示 3.解压后进入解压文件 4.安装: make 出现it.s a good idea to run 'make ...

  6. 【Redis】主从同步

    Redis提供了主从复制功能,主要是为了保证服务的高可用性.在redis.conf配置文件中通过设置,可以开启主从复制功能.或者在客户端中使用slaveof 命令开启该功能. slaveof < ...

  7. Redis系列之(二):Redis主从同步,读写分离

    1. Redis主从同步 Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制. 2. 配置主从同步 Mater Slave的模式,从Slave向Maste ...

  8. Redis系列之(二):Redis主从同步,读写分离(转)

    1. Redis主从同步 Redis支持主从同步.数据可以从主服务器向任意数量的从服务器上同步,同步使用的是发布/订阅机制. 2. 配置主从同步 Mater Slave的模式,从Slave向Maste ...

  9. Redis之(七)主从同步与集群管理

    8.1 主从同步原理 像MySQL一样,Redis是支持主从同步的,而且也支持一主多从以及多级从结构. 主从结构,一是为了纯粹的冗余备份,二是为了提升读性能,比如很消耗性能的SORT就可以由从服务器来 ...

随机推荐

  1. 取得MapReduce的Thread Dump

    ====2016/5/20: 经过上级指示,为了MR性能调优,需要截取MR的服务器的线程堆栈(Thread Dump) 战友介绍的方法是这样的: ①.使用ps命令[ps -ef | grep java ...

  2. CodeForces 474A Keyboard (水题)

    题意:给定一个键盘,然后一行字母,和一个字符,代表把那一行字母在键盘上左移还是右移一位. 析:没什么好说的,直接暴力就好. 代码如下: #include<bits/stdc++.h> us ...

  3. C# 时间戳的生成

    /**        * 生成时间戳,标准北京时间,时区为东八区,自1970年1月1日 0点0分0秒以来的秒数         * @return 时间戳        */        publi ...

  4. mysql 数据库查询

    myspl   三部分  文件  服务  界面 查看数据库命令   show databases 创建数据库  create database  库名 删除数据库   drop database   ...

  5. Mybatis 多个Mapper

    在实际应用中的,会有较多个mapper.如果每新建一个mapper,就向SqlMapConfig上加上对应的配置文件,会十分不便. 可以新建一个package,在其下面放置Mapper.java,同时 ...

  6. HashMap的小试牛刀

    HashMap的介绍 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.ut ...

  7. SQL存储原理及聚集索引、非聚集索引、唯一索引、主键约束的关系(补)

    索引类型 1.          唯一索引:唯一索引不允许两行具有相同的索引值 2.          主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型.主键索引要求主键中的 ...

  8. 彻底的卸载SQL Server2005

    昨天不小心把SQL Server 2005弄坏了.所以,对彻底卸载他进行了研究.在这里记录一下,嘿嘿~ 1.首先在控制面板中卸载所有与SQL Server 2005相关的程序,要记得最后一个卸载Mic ...

  9. Android-ContentProvider流程

    Android-ContentProvider原理及流程 Android为什么设计出一个ContentProvider ? 答:ContentProvider的出现主要是暴露数据出去,暴露什么数据呢 ...

  10. 在 LINQ to Entities 查询中无法构造实体或复杂类型“Mvc_MusicShop_diy.Models.Order”

      错误代码: var orders = db.Orders.Where(o => o.UserId == userid).Select(c => new Order {   OrderI ...