Redis的主从架构

部署Redis主从架构
一、主从复制的工作流程

1、主库会基于ping check的方式检查从库书否在线,如果在线的话 直接同步数据到从库,从库也可以主动像主库发送同步请求,主库如果启动了持久化功能会不断啊数据同步到磁盘上,主库一旦收到从库的请求时会把内存中的数据做快照,然后把数据文件同步给从库,由从库保存到本地文件中,之后把数据加载到内存中完成数据重建
2、特点
①支持一主多从
②支持级联复制
Master以非阻塞方式同步数据至slave(master可以同时处理多个slave的读写请求,salve端在同步数据时也可以使用非阻塞方式);
二、搭建一个一主两从的架构
Cong12 30.1.1.10 master
Cong13 30.1.1.11 slave
Cong14 30.1.1.12 slave
1.1安装所有的插件
在这里插入图片描述

因为redis是基于c++编译的软件所以我们要安装GCC的插件编译环境 lrzsz工具包是为了我们从物理机获得 redis的安装包
1.2解压安装
在这里插入图片描述

tar -zxvf redis-5.0.5.tar.gz 解压安装包到当前目录下
在这里插入图片描述

Cd 进入redis-5.05 的目录下执行 make 进行编译
在这里插入图片描述

编译完成后执行make install PREFIX=/usr/local/redis 把redis安装到这个目录下
在这里插入图片描述

安装完成
1.3 配置redis的启动环境
Mkdir -p /usr/local/redis/etc 创建一个etc的目录来存放redis的配置文件
Cp从redis-5.05 这个目录复制redis.conf到 /usr/local/redis/etc下面

启动我们的redis服务
在这里插入图片描述

可以看到我们的服务是在前台运行并且发出了三个警告 这三个警告是不能忽视的
①The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 大概意思是对于一个高负载的环境tcp设置128的值太小了所以我们要把它设置的大一点上面也提到了我们要设支撑511
Vim /etc/sysctl.conf 在配置文件末尾加上这两行
net.core.somaxconn = 511
②WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add ‘vm.overcommit_memory = 1’ to /etc/sysctl.conf and then reboot or run the command ‘sysctl vm.overcommit_memory=1’ for thi s to take effect. “警告超限”内存设置为0!在内存不足的情况下,后台保存可能会失败。若要解决此问题,请将“vm.overcommit_memory=1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sysctl vm.overcommit_memory=1”以使其生效。
我们要在/etc/sysctl.conf下添加一行
vm.overcommit_memory=1
1③WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command ‘echo never > /sys/kernel/mm/transparent_hugepage/enabled’ as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
11754:M 08 Aug 2021 13:47:24.041 * Ready to accept connections
警告您的内核中启用了透明大页面(THP)支持。这将导致Redis的延迟和内存使用问题。要解决此问题,请以root用户身份运行命令“echo never>/sys/kernel/mm/transparent_hugepage/enabled”,并将其添加到/etc/rc.local中,以便在重新启动后保留设置。禁用THP后,必须重新启动Redis
我们需要在命令行执行
echo never > /sys/kernel/mm/transparent_hugepage/enabled
1④设置打开目录的深度
修改/etc/security/limits.conf文件,在文件末尾添加下面的两行:

  •            soft    nofile         10032
    
  •            hard    nofile         10032
    

修改/etc/pam.d/login文件,在文件末尾添加下面的内容:
session required /usr/lib64/security/pam_limits.so
重新登录使配置生效
1⑤把redis启动设置为后台启动
Vim /usr/local/redis/etc/redis.conf 在这里插入图片描述

把redis作为守护进程的方式放在后台启动
1⑥为redis的命令做软连接使redis的命令可以在终端上直接生效
1.4配置主库的配置文件
Vim /usr/local/redis/etc/redis.conf
修改
在这里插入图片描述

30.1.1.10 是我本机的ip修改redis提供服务的ip
在这里插入图片描述

为redis认证设置一个密码
在这里插入图片描述
在这里插入图片描述

修改pid和logfile的存放路径方便我们查看(也可不修改)
路径 redis/data log log1 是手动创建
在这里插入图片描述

开启redis的日志文件持久化aof 默认是开启数据文件持久化
apendfsync always|everysec|no #调用fsync()写数据到硬盘中,always是每一次写操作就马上同步到日志中,everysec是每隔一秒强制fsync,no是不调用fsync(),让操作系统自己决定何时同步。
这就是主库所有的配置
1.4.1配置从库 相比于主库由些许差别
在主库配置的基础上增加了这两个需要手动添加 添加在replication的模块下
Replicaof 30.1.1.10 6379 是指定主库的IP地址和端口
Masterauth 123456 是认证密码
在这里插入图片描述

主库从库同步的信息
在这里插入图片描述

另一个从库重复这个从库的所有操作!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值