Redis的数据同步

在一台机器上运行2个及以上的redis,是redis支持多实例的功能,基于端口号的不同,就能够运行多个相互独立的redis数据库,当我们的一个redis服务挂掉之后,另外一个可以马上接管,继续提供服务,也就是一主多从的关系,下面来介绍一下,如何来搭建
什么是多实例?
就是机器上运行了多个redis相互独立的进程
互不干扰的独立的数据库
叫做多个redis数据库的实例,基于配置文件区分即可
1:准备好2个配置文件,分别写入如下内容

#第一个
[root@localhost etc]# vim  s25-master.redis.conf 
port 6379
daemonize yes
pidfile /s25/6379/redis.pid
loglevel notice
logfile "/s25/6379/redis.log"
dbfilename dump.rdb
dir /s25/6379
protected-mode no

2:准备第2个配置文件,分别写入如下内容

#第二个
[root@localhost etc]# vim  s25-slave.redis.conf 
port 6389
daemonize yes
pidfile /s25/6389/redis.pid
loglevel notice
logfile "/s25/6389/redis.log"
dbfilename dump.rdb
dir /s25/6389
protected-mode no
slaveof  127.0.0.1  6379  #也可直接在配置文件中,定义好复制关系,启动后,立即就会建立复制

3:分别创建对应的文件夹

[root@localhost etc]# mkdir  -p  /src/{6379,6389}

4:分别启动2个数据库,查看他们的复制关系

[root@localhost s25]# redis-server /etc/s25-master.redis.conf 
[root@localhost s25]# redis-server /etc/s25-slave.redis.conf 

效果图
image.png

5:分别查看他们的进程已经复制关系

[root@localhost s25]# redis-cli  -p 6379  info  replication
[root@localhost s25]# redis-cli  -p 6389  info  replication

image.png
可以看到主从关系已经建立了!!!
PS:通过一条命令,配置他们的复制关系,注意,这个命令只是临时配置redis的复制关系,想要永久修改,还得修改配置文件

#手动建立复制关系哦
redis-cli -p  6389  slaveof  127.0.0.1 6379

6.此时6379已然是主库,6389已然是从库
此时可以向6379中写入数据,能够同步到6389中
6389是一个只读的数据库,无法写入数据

image.png

测试环节
在6379中设置key值,可以看到在6389中已经自动可以获取到所有设置的key值了
image.png
OK,效果还不错
###下面来试下一主多从的形式,以及主从复制故障切换

1.再创建一个配置文件,port是6399,且加入到一主一从的复制关系中去

vim  s25-salve2-redis.conf 
port 6399
daemonize yes
pidfile /s25/6399/redis.pid
loglevel notice
logfile "/s25/6399/redis.log"
dbfilename dump.rdb
dir /s25/6399
protected-mode no
slaveof  127.0.0.1  6379 

2.创建数据文件夹

mkdir -p /s25/6399

3.启动6399的数据库,查看他的身份复制关系
[root@localhost s25]# redis-server /etc/s25-salve2.redis.conf

4.分别查看他们的进程已经复制关系

[root@localhost etc]# redis-cli -p  6399 info  replication 

image.png
好了,接下来就是测试环节了
image.png

5:先查看下本机启动的所有redis进程服务

[root@localhost etc]# ps  -ef   | grep redis
root      27407      1  0 18:26 ?        00:00:05 redis-server *:6379
root      27930      1  0 19:54 ?        00:00:00 redis-server 127.0.0.1:6389
root      28035      1  0 20:12 ?        00:00:00 redis-server 127.0.0.1:6399
root      28057  27704  0 20:16 pts/0    00:00:00 grep --color=auto redis
[root@localhost etc]# 

6:分别查看复制关系

[root@localhost etc]#  redis-cli -p 6379 info replication
[root@localhost etc]#  redis-cli -p 6389 info replication
[root@localhost etc]#  redis-cli -p 6399 info replication

image.png
7:此时直接干掉主库即可

[root@localhost etc]# kill -9 27407

8:此时一位从库,不乐意了,翻身农奴做主人,去掉自己的从库身份,没有这个从库的枷锁,我就是我自己的主人

[root@localhost etc]# redis-cli -p 6399 slaveof  no  one

9:此时6399已然是主库了,修改6389的复制信息,改为6399即可

[root@localhost etc]# redis-cli -p 6389 slaveof 127.0.0.1 6399

效果图
image.png

10:此时可以向主库6399写入数据,6389查看数据即可
测试写入数据
image.png
11:从库挂掉,无所谓,重新再建立一个从库,加入主从复制即可,。,。

OK,大功告成~~~~~~~~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值