为了账号安全,请及时绑定邮箱和手机立即绑定

Redis青铜修炼手册(五) --- Redis的主从复制

标签:
Java Python Redis

有什么好处

  • 主从复制实现了数据的热备份,是持久化之外的一直方式
  • 故障回复:当主节点出现问题时,从节点可以提供数据
  • 负载均衡:主节点提供写服务,从节点提供读服务。在少写多读的场景下,从节点可以有效的分担请求的负载。
  • 高可用,主从复制还是哨兵和集群能够实施的基础,因此说主从复制是Redis高可用的基础。

拷贝多份redis配置文件

wyl@wyl-linux:/etc/redis$ sudo cp redis.conf  redis6379.conf
wyl@wyl-linux:/etc/redis$ sudo cp redis.conf  redis6380.conf
wyl@wyl-linux:/etc/redis$ sudo cp redis.conf  redis6381.conf
wyl@wyl-linux:/etc/redis$ ls -l
total 240
-rw-r----- 1 root  root  58837 2月  17 23:13 redis6379.conf
-rw-r----- 1 root  root  58837 2月  17 23:13 redis6380.conf
-rw-r----- 1 root  root  58837 2月  17 23:13 redis6381.conf
-rw-r----- 1 redis redis 58837 11月 29 18:37 redis.conf

开启 daemonize yes
主节点配置文件不变,端口号6379
两个从节点,修改pid、log、dump文件名字,以及端口号(分别是6380、6381)
可根据不同的配置文件修改,如redis-server-6380.pid、 redis-server-6380.log、dump-6380.rdb

daemonize yes
pidfile /var/run/redis/redis-server.pid 
port 6379
logfile /var/log/redis/redis-server.log
dbfilename dump.rdb

三个redis的配置完毕之后,启动redis服务

wyl@wyl-linux:~$ sudo redis-server /etc/redis/redis6379.conf 
wyl@wyl-linux:~$ redis-cli -p 6379

wyl@wyl-linux:~$ sudo redis-server /etc/redis/redis6380.conf 
wyl@wyl-linux:~$ redis-cli -p 6380

wyl@wyl-linux:~$ sudo redis-server /etc/redis/redis6381.conf 
wyl@wyl-linux:~$ redis-cli -p 6381

查看进程,三台redis服务均启动成功

wyl@wyl-linux:~$ ps -ef|grep redis
redis      4305      1  0 23:28 ?        00:00:00 /usr/bin/redis-server 127.0.0.1:6379
root       4355   1707  0 23:29 ?        00:00:00 redis-server 127.0.0.1:6380
root       4376   1707  0 23:29 ?        00:00:00 redis-server 127.0.0.1:6381
wyl        4570   2269  0 23:31 pts/0    00:00:00 redis-cli -p 6379
wyl        4572   3973  0 23:31 pts/1    00:00:00 redis-cli -p 6380
wyl        4576   4362  0 23:31 pts/2    00:00:00 redis-cli -p 6381
root       4804   4580  0 23:33 pts/3    00:00:00 sudo vim redis.conf
root       4805   4804  0 23:33 pts/3    00:00:00 vim redis.conf
wyl        4879   4809  0 23:35 pts/4    00:00:00 grep --color=auto redis
SLAVEOF host port 主节点HOST、主节点port

建立主从复制关系,

slaveof no one

断开主从复制关系,使得这个从属服务器关闭复制功能,并从从属服务器转变回主服务器从节点断开复制后,不会删除已有的数据,只是不再接受主节点新的数据变化。

进行主从配置

在这里插入图片描述

可以通过 info replication 查看服务器信息
role:master 主服务器
rike: salve 从服务器

在这里插入图片描述

  • 主服务器宕机之后,从服务器依旧还是从服务器,并不会上位为主服务器
  • 从机宕机之后,每次启动都需要重新与主服务器进行连接。除非在配置文件中进行了配置

在这里插入图片描述

因此需要重新执行SLAVEOF 127.0.0.1 6379 同步主机数据
如果在正常运行的salve机器上,执行SLACEOF host port,则这个salve会变成master节点。

只有主机才可以进行写数据,如下 我在6380端口的从机上进行写操作

# 从机只可进行数据的读取,不可写入
127.0.0.1:6380> set k3 v3
(error) READONLY You can't write against a read only slave.


上面一主2从,如果从机太多,只有一个主机,所有的写压力都落在了唯一的一个主机上。所以这里就要用到了去中心化的概念

去中心化
是在一个分布有众多节点的系统中,每个节点都具有高度自治的特征。节点之间彼此可以自由连接,形成新的连接单元。任何一个节点都可能成为阶段性的中心,但不具备强制性的中心控制功能。节点与节点之间的影响,会通过网络而形成非线性因果关系。这种开放式、扁平化、平等性的系统现象或结构,我们称之为去中心化。

上面提到了三个reids。如果6380作为6379的从机,6380作为6381的从机(也就是80手机81的主节点)
如下所示
在这里插入图片描述

再回到1主多从的情况下,如果主机宕机了会怎么样呢? 如下图所示。
在这里插入图片描述

欢迎关注公众号"程序员共成长", 公众号内回复【获取资源】领取程序员专属礼包!!!

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Python工程师
手记
粉丝
320
获赞与收藏
2128

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消