Redhat_rhel8.0_Redis伪集群主从复制_读写分离与哨兵进程配置

Redhat_rhel8.0_Redis伪集群主从复制_读写分离配置详细。

一、搭建redis_一主二从_伪集群准备工作:

1.1、一台redis-redhat_8服务器,并且已安装redis服务。(详细安装请看redis文章)

1.2、安装目录如下:

文件目录:/root/redis/redis-6.2.1

编译目录:/redis_install/etc/bin

启动文件目录:/root/redis_install/etc

二、复制redis.conf启动文件( 三份 ):

[root@Redis etc]# ls
redis-79.conf  redis-80.conf  redis-81.conf  redis.conf

三、编辑redis-79.conf、redis-80.conf、redis-81.conf配置文件

端口号:port 6380
开启后台启动:daemonize yes
日志文件:pidfile /var/run/redis_6380.pid
日志文件:logfile “6380.log”
持久化:dbfilename dump80.rdb
主从关系:replicaof “masterip” “masterport”
主从关系密码:masterauth “master-password“

四、启动redis(三个)服务

[root@Redis ~]# /redis_install/etc/bin/redis-server redis_install/etc/redis-79.conf
[root@Redis ~]# /redis_install/etc/bin/redis-server redis_install/etc/redis-80.conf
[root@Redis ~]# /redis_install/etc/bin/redis-server redis_install/etc/redis-81.conf

[root@Redis ~]# ps -ef | grep redis //查看redis进程是否启动。备注:kill -9 PID 杀死进程。
root 13508 1 0 20:33 ? 00:00:00 /redis_install/etc/bin/redis-server 127.0.0.1:6379
root 13536 1 0 20:33 ? 00:00:00 /redis_install/etc/bin/redis-server 127.0.0.1:6380
root 13546 1 0 20:33 ? 00:00:00 /redis_install/etc/bin/redis-server 127.0.0.1:6381
root 13564 2339 0 20:33 pts/3 00:00:00 grep --color=auto redis

五、开启三个服务器连接框
在这里插入图片描述

六、登录redis-6379、redis-6380、redis-6381服务查看
在这里插入图片描述
每一个redis服务启动,默认都是master。

七、配置主从复制。在redis-6380和redis-6381为从服务器。

127.0.0.1:6380> slaveof 127.0.0.1 6379
OK
127.0.0.1:6380> info replication
Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up

127.0.0.1:6381> slaveof 127.0.0.1 6379
OK
127.0.0.1:6381> info replication
Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up

八、在redis-6379上验证
在这里插入图片描述

九、测试:主次复制,读写分离!

也就是redis-6379可读写,但redis-6380和redis6381不可写,只能读。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此成功!

存在问题:当redis-6379_master宕机以后,redis-6380和redis-6381还是slave。

解决方法:设置选举机制,当服务器redis-6379宕机以后,redis-6380选举为master。


一、哨兵进程搭建

1.1、哨兵模式是一种特殊模式,哨兵是一个独立的进程,独立运行。

1.2、原理是:哨兵通过发送命令,等待redis服务器响应,从而监控运行的多个redis实例。

二、新建立一个窗口

在这里插入图片描述
2.1、在/root/redis_install/etc文件下,创建哨兵配置文件。

[root@Redis etc]# vim sentinel.con
写入如下配置文件:
sentinel monitor my_redis 127.0.0.1 6379 1

2.2、启动哨兵模式配置文件

[root@Redis ~]# redis-sentinel redis_install/etc/sentinel.conf

在这里插入图片描述

2.3、此时redis-6379为master,现关闭redis-6379服务。

2.4查看rediss-6380是否变为master
在这里插入图片描述
至此成功!

2.5、再次启动redis-6379,它还是slave,而redis-6380还是master。


缓存穿透:当一个用户去读取一个数据,首先会去redis缓存去找,没有找到的话,就会去mysql数据库寻找。那么,后面查询的数据都会去mysql中查找。这样就造成了mysql雪崩。

解决问题:
1、布隆过滤器:是一种数据结构,对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃,从而避免了对底层存储系统的查询压力。

2、存储空对象:当存储层不命中后,即使返回的空对象也将其缓存起来,同时会设置一个过期时间,之后再次访问这个数据将会从缓存中获取,保护了后端数据源。(不建议)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值