ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

10_Redis主从复制

2021-02-04 14:03:11  阅读:152  来源: 互联网

标签:10 主从复制 Redis redis 从机 6380 主机 root


是什么

持久化保证了即使redis服务重启也不会丢失数据,但是当redis服务器的硬盘损坏了可能会导致数据丢失,通过redis的主从复制机制就可以避免这种单点故障(单台服务器的故障)。

特点:

  • 主redis中的数据和从上的数据保持实时同步,当主redis写入数据时通过主从复制机制复制到两个从服务上
  • 主从复制不会阻塞master,在同步数据时,master 可以继续处理client 请求
  • 主机master配置:无需配置

怎么做

工作中一般选用:一主两从或一主一从

数据会同步到从服务器。

在这个集群中的几台服务器上都有同样的数据。

在这里插入图片描述


主从搭建步骤

主机:不用配置。仅仅只需要配置从机,从机slave配置:(这里是伪集群)

1、复制出一个从机,

注意使用root用户

[root@xj0927 myapps]# cp redis/ redis3 -r
[root@xj0927 myapps]# ll
drwxr-xr-x. 3 root root 4096 Sep 11 15:42 redis
drwxr-xr-x. 3 root root 4096 Sep 11 16:03 redis3

2、修改关联的主机地址

修改从机的redis.conf

vim redis.conf

修改内容如下:

replicaof 主机ip 主机端口号

在这里插入图片描述


3、修改从机的port

修改redis.conf配置文件:

# 地址为6380(自定义)
port 6380

在这里插入图片描述


4、清除从机中的持久化文件

有则清除:否则不同步

[root@localhost bin]# rm -rf appendonly.aof dump.rdb

5、启动从机

[root@localhost redis1]# ./bin/redis-server ./redis.conf

6、查看

查看 redis 信息:

info replication

在这里插入图片描述

在这里插入图片描述


7、测试

# 启动6380的客户端
[root@xj0927 redis3]# ./bin/redis-cli -h 192.168.77.130 -p 6380
192.168.77.130:6380> 
# 从主机添加一条数据:
192.168.77.130:6379> set k8 haha
OK
# 从机得到数据:
192.168.77.130:6380> get k8
"haha"

复制原理

主机一旦发生增删改操作,那么从机会自动将数据同步到从机中

从机不能执行写操作,只能读

复制过程:

  • 当从库和主库建立MS(master slaver)关系后,会向主数据库发送SYNC命令;

  • 主库接收到SYNC命令后会开始在后台保存快照(RDB持久化过程),并将期间接收到的写命令缓存起来;

  • 快照完成后,主Redis会将快照文件和所有缓存的写命令发送给从Redis;

  • 从Redis接收到后,会载入快照文件并且执行收到的缓存命令;

  • 主Redis每当接收到写命令时就会将命令发送从Redis,保证数据的一致;【内部完成,所以不支持客户端在从机人为写数据。】


宕机情况

从redis宕机:重新启动即可

主redis宕机:
从数据库(从机)中执行SLAVEOF NO ONE命令,断开主从关系并且提升为主库继续服务[把一个从机做为主机,这个时候新主机[之前的从机]就具备写入的能力];

主服务器修好后,重新启动后,执行SLAVEOF命令,将其设置为从库[老主机设置为从机]。

缺点:手动执行,过程复杂,容易出错。

标签:10,主从复制,Redis,redis,从机,6380,主机,root
来源: https://blog.csdn.net/XJ0927/article/details/113642571

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有