Redis 6.0.9+keepalived主从部署及负载均衡

本文详细介绍了如何在Redis 6.0.9版本上进行主从部署,包括安装准备、安装Redis、配置主从和服务器参数。接着,文章讲解了利用Keepalived实现负载均衡,包括在Master和Slave服务器上安装Keepalived,以及配置Keepalived的步骤和相关脚本的创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.redis 安装

1.1 安装准备

下载:
链接:https://pan.baidu.com/s/1f0E0BYaWSyDmxVPGjkNIPg
提取码:9927

1.2安装redis

tar -zxvf redis-6.0.9.tar.gz -C /apps

1.3 Redis简单配置

主从都需要以下操作:
新建数据持久化存放及日志目录

mkdir -p /apps/data
mkdir -p /apps/logs
mkdir -p /apps/conf

----------将下载好的redis.conf上传至/apps------------------

cd  /apps/redis-6.0.9 //进入redis安装目录
mv redis.conf  redis.conf.bak //修改原本的redis.conf文件名
mv /apps/redis.conf    /apps/redis-6.0.9/redis.conf  //将下载好的redis.conf放
到安装目录主从都需要(redis集群密码和客户端连接密码都是redispassword)
##########如果需要修改redis密码:########################
vim redis.conf
requirepass redispassword   //客户端密码
masterauth redispassword    //集群密码

– 改完后wq保存即可

+++++++++++++创建redis-status.conf文件++++++++++++++++
vim /apps/conf/redis-status.conf
####从节点操作,主节点不用填写内容只创建文件即可#####
vim  /apps/conf/redis-status.conf    //在redis-status.conf添加下面一行,内网ip根据实际情况添加
slaveof  10.25.10.11 6379(例如:主节点内网地址为10.25.10.11)

1.4 服务器参数配置

####需要sudo及以上权限操作#######

vim /etc/sysctl.conf
--添加以下两行----
net.core.somaxconn = 511    //somaxconn:定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。需要与redis.conf文件里的tcp-backlog(默认511)保持一致
vm.overcommit_memory = 1   //此参数设置为0可能会在低内存的情况下导致后台备份失败

####修改完成后需要执行才能生效######

sysctl -p   //执行生效

#####关闭防火墙并禁用#####

systemctl stop firewalld
systemctl disable firewalld

1.5 启停Redis

修改完成后,分别启动2台redis,先启动主节点,再启动从节点。

###启动###
cd /apps/redis-6.0.9/src
./redis-server ../redis.conf 
###停止###
ps -ef | grep redis
Kill -9 进程号,

启动后检查主从复制状态:

在redis的src目录下执行

./redis-cli

127.0.0.1>auth [客户端密码]

127.0.0.1>info

2.keepalived

在MASTER和SLAVE上安装keepalived:

yum -y install keepalived

安装以后先不要启动,2台服务器分别KEEPALIVED配置完成后再分别启动。

相应的修改和添加keepalived的配置内容如下
(实际配置过程中必须将注释删除,否则keepalive启动会不正常):
MASTER上keepalived.conf 添加:

vrrp_script chk_redis
{
script "/etc/keepalived/scripts/redis_check.sh"
interval 2 #检查间隔为2秒
timeout 2 #超时时间2秒
fall 3 #三次脚本执行失败后执行后续动作
}
修改:vrrp_instance VI_1 {
state BACKUP #一定设置为BACKUP
interface eth2 #业务网IP所在网卡
virtual_router_id 1 #一组主从要保持相同的virtual_router_id,但同一网段内virtual_router_id不能重复
priority 100
advert_int 3
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.3 #虚拟IP地址,主从保持一致
}
track_script {
chk_redis
}
notify_master "/etc/keepalived/scripts/redis_master.sh"
//状态变为MASTER时执行脚本
notify_backup "/etc/keepalived/scripts/redis_slave.sh"
//状态变为BAKCUP时执行脚本
notify_fault "/etc/keepalived/scripts/redis_fault.sh"
//状态错误时执行脚本
notify_stop "/etc/keepalived/scripts/redis_stop.sh"
//keepalived正常停止时执行
}

在/etc/keepalived下新建scripts目录:

mkdir -p /etc/keepalived/scripts

给脚本文件加执行权限

并在scripts目录下放置5个脚本,并赋予可执行权限,内容分别如下:

redis_check.sh:

#!/bin/bash
IPAD=192.168.1.1(主节点IP)
ALIVE=`/usr/local/bin/redis-cli -h $IPAD -a redhat ping` #-a 后面的Redhat是指设置的登录密码
if [ "$ALIVE" == "PONG" ];then
echo $ALIVE
exit 0
else
echo $ALIVE
exit 1
fi

redis_fault.sh:

#!/bin/bash
LOGFILE=/var/log/keepalived-redis-state.log
echo "[fault]" >> $LOGFILE
date >> $LOGFILE
pkill keepalived

redis_master.sh:

#!/bin/bash
REDISCLI="/usr/local/bin/redis-cli -a redhat" #-a 后面的Redhat是指设置的登录密码
LOGFILE="/var/log/keepalived-redis-state.log"
echo "[master]" >> $LOGFILE
date >> $LOGFILE
echo "Being master...." >> $LOGFILE 2>&1
echo "Run SLAVEOF NO ONE cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF NO ONE >> $LOGFILE 2>&1
echo "" > /apps/redis/conf/redis-status.conf

redis_slave.sh:

#!/bin/bash
IPAD=192.168.1.2(从节点IP)
REDISCLI="/usr/local/bin/redis-cli -a redhat" #-a 后面的Redhat是指redis设置的登录密码
LOGFILE="/var/log/keepalived-redis-state.log"
echo "[backup]" >> $LOGFILE
date >> $LOGFILE
echo "Being slave...." >> $LOGFILE 2>&1
echo "Run SLAVEOF cmd ..." >> $LOGFILE
$REDISCLI SLAVEOF $IPAD 6379 >> $LOGFILE 2>&1
echo -e "# $(date)\nslaveof $IPAD 6379" > /apps/redis/conf/redis-status.conf

redis_stop.sh:

#!/bin/bash
LOGFILE=/var/log/keepalived-redis-state.log
echo "[stop]" >> $LOGFILE
date >> $LOGFILE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值