Redis主从同步之主从切换

环境-OS:Centos7.2 IP地址:192.168.146.100

Centos7.2 IP地址:192.168.146.110

下载redis源码包(146.100操作

 

[root@master ~]# wget http://download.redis.io/releases/redis-3.2.3.tar.gz

Redis主从同步之主从切换_第1张图片
解压并安装redis

 

 

[root@master ~]# tar zxf redis-3.2.3.tar.gz 
[root@master ~]# cd redis-3.2.3/
[root@master redis-3.2.3]# make && make install

Redis主从同步之主从切换_第2张图片

 

 

 

切换到utils目录下,执行redis初始化脚本 install_server.sh (默认回车即可)如下:

 

Redis主从同步之主从切换_第3张图片

通过上面图片我们可以看到redis的主配置位置以及日志位置等信息。现在我们需要使用systemd所以需要在/etc/systems/system下创建一个单位文件名字redis_6379.servicer如下:

 

[root@slave redis-3.2.3]# vi /etc/systemd/system/redis_6379.service
[root@slave redis-3.2.3]# cat /etc/systemd/system/redis_6379.service
[Unit]
Description=Redis on port 6379
[Service]
Type=forking
ExecStart=/etc/init.d/redis_6379 start
ExecStop=/etc/init.d/redis_6379 stop
[Install]
WantedBy=multi-user.target

 

Redis主从同步之主从切换_第4张图片
注:这里Type=forking是后台运行的形式

启动redis

 

[root@master utils]# systemctl daemon-reload 
[root@master utils]# systemctl enable redis_6379.service 
[root@master utils]# systemctl start redis_6379.service  
[root@master utils]# systemctl status redis_6379.service 

Redis主从同步之主从切换_第5张图片

 

 

 

从上图可以看出redis正在运行,默认监听的是127.0.0.1的6379端口(测试中可选择关闭防火墙

 

 

[root@master utils]# systemctl stop firewalld
[root@master utils]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Mon 2018-01-01 14:51:04 CST; 7s ago
 Main PID: 945 (code=exited, status=0/SUCCESS)

Jan 01 14:13:22 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Jan 01 14:13:28 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
Jan 01 14:51:01 master systemd[1]: Stopping firewalld - dynamic firewall daemon...
Jan 01 14:51:04 master systemd[1]: Stopped firewalld - dynamic firewall daemon.

设置redis监听地址,添加监听主机

 

[root@master utils]# vim /etc/redis/6379.conf 

修改:bind 127.0.0.1 192.168.146.100 6379
重启redis服务,查看监听IP地址是否修改成功

 

[root@master utils]# systemctl restart redis_6379.service 
[root@master utils]# netstat -anput | grep redis
tcp        0      0 192.168.146.100:6379    0.0.0.0:*               LISTEN      30049/redis-server  
tcp        0      0 127.0.0.1:6379          0.0.0.0:*               LISTEN      30049/redis-server 

 

配置完成之后我们启动redis并进行操作

 

 

[root@master utils]# redis-cli -h 192.168.146.100 -p 6379
192.168.146.100:6379> keys *
(empty list or set)
192.168.146.100:6379> set name yankerp
OK
192.168.146.100:6379> get name
"yankerp"
192.168.146.100:6379> 

 

关于redis-cli -h 192.168.146.100 -p 6379 这条命令连接redis服务器,IP地址是192.168.146.100 端口是6379
keys *是查看redis所有的键值对。
set name yankerp添加一个键值name,内容为yankerp。
get name查看name这个键值的内容。

环境描述:

 

 

主redis-IP地址:192.168.146.100

从redis-IP地址:192.168.146.110

从redis安装步骤和redis主是一样的,可以参考上面过程。提示:(在安装从redis的时候的端口设置为6380即可)如下:

安装从redis注意1:

Redis主从同步之主从切换_第6张图片

注意2:
Redis主从同步之主从切换_第7张图片

安装redis从需要注意的配置如上,我这边已经安装好了也启动成功。

 

[root@slave utils]# netstat -anput | grep redis
tcp        0      0 127.0.0.1:6380          0.0.0.0:*               LISTEN      28653/redis-server

一、主从配置

 

修改从redis配置文件redis.conf中的port6379改为6380,添加监听本机地址192.168.146.110,添加slaveof 192.168.146.100 6379如下:

Redis主从同步之主从切换_第8张图片
Redis主从同步之主从切换_第9张图片

配置成功后,重启redis服务(关闭从redis防火墙)

测试数据同步

主redis:

 

[root@master utils]# redis-cli -h 192.168.146.100 -p 6379
192.168.146.100:6379> set a 1
OK
192.168.146.100:6379> set b 2
OK
192.168.146.100:6379> set c 3
OK
192.168.146.100:6379> set d 4
OK
192.168.146.100:6379> set e 5
OK
192.168.146.100:6379> set F 2018
OK
192.168.146.100:6379> keys *
1) "b"
2) "e"
3) "F"
4) "a"
5) "name"
6) "c"
7) "d"
192.168.146.100:6379> get F
"2018"

从redis查看数据已经同步过来了

 

 

[root@slave utils]# redis-cli -h 192.168.146.110 -p 6380
192.168.146.110:6380> keys *
1) "e"
2) "name"
3) "a"
4) "c"
5) "F"
6) "b"
7) "d"
192.168.146.110:6380> get F
"2018"

但是我们在从redis主机上添加一个键值PPP内容为.yankerp如下:

 

Redis主从同步之主从切换_第10张图片
默认是读写分离的,在从redis上只能读,但是不能写!

二、主从切换

1、停止主redis
Redis主从同步之主从切换_第11张图片

2、从redis设成主的redis(从redis服务器操作)

 

[root@slave utils]# redis-cli -p 6380 slaveof NO ONE
OK

3、接下来测试从redis主机是否切换成主redis如下:

 

 

[root@slave utils]# redis-cli -p 6380
127.0.0.1:6380> set PPP yankerp
OK
127.0.0.1:6380> get PPP
"yankerp"

在这里我们可以看到从redis主机能写入

 

4、原来的主redis恢复正常,重新切换回去

1)将现在的主redis的数据进行保存(192.168.146.110)操作

 

[root@slave utils]# redis-cli -h 192.168.146.110 -p 6380
192.168.146.110:6380> get PPP
"yankerp"
192.168.146.110:6380> save
OK

2)将现在主的redis根目录下的dump.rdb文件拷贝覆盖掉原来主redis的根目录(146.110)操作

 


3)启动原来主redis(146.100)操作

Redis主从同步之主从切换_第12张图片
4)在现在的主redis中切换(146.110)操作

 

[root@slave ~]# redis-cli -p 6380 slaveof 192.168.146.100 6379
OK

最后再次测试(主redis)

 

Redis主从同步之主从切换_第13张图片
从redis如下:

Redis主从同步之主从切换_第14张图片

到这里主从同步以及主从切换完成

祝大家元旦节快乐!

希望对您有所帮助,再见~

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Linux,Linux入门到熟练)