redis集群一主二从三哨兵

节点规划

准备三台虚拟机,使用CentOS-7-x86_64-DVD-2009.iso镜像

节点

IP

master

192.168.108.91

slave1

192.168.108.92

slave2

192.168.108.93

手动安装redis

1.解压 tar -zxvf redis-6.0.8.tar.gz

2.yum 安装 gcc (注意版本,5.3以上)

gcc -v ##查看版本号

升级gcc

yum -y install centos-release-scl

yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils

scl enable devtoolset-9 bash ##短期有效

echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile ##长期有效

3.进入redis目录,make进行编译,进入redis/src目录下make install 安装(如果报错,使用make clean 清除已编译生成的文件)

cd redis-6.0.8

make ##进行编译

cd src

make PREFIX=/usr/local/redis install ##指定redis安装目录进行安装

make test ##进行测试

yum install tcl -y ##如果测试报错执行这个

yum安装redis

在master节点:

将chinaskills_cloud_iaas.iso镜像上传到mater节点的/root目录下

1.挂载镜像

mkdir /opt/{centos,iaas}

mount /root/chinaskills_cloud_iaas.iso /opt/iaas -o loop

mount /dev/sr0 /opt/centos

2.配置本地源

cat /etc/yum.repos.d/local.repo

[centos]

name=centos

baseurl=file:///opt/centos

enabled=1

gpgcheck=0

[iaas]

name=iaas

baseurl=file:///opt/iaas/iaas-repo

enabled=1

gpgcheck=0

yum clean all 

yum repolist

3.下载安装ftp并配置匿名访问目录

yum install vsftpd -y

echo 'anon_root=/opt' >> /etc/vsftpd/vsftpd.conf

systemctl restart vsftpd && systemctl enable vsftpd 

4.安装redis

yum install redis -y

在slave节点:

1.配置本地源

cat /etc/yum.repos.d/local.repo

[centos]

name=centos

baseurl=ftp://centos

enabled=1

gpgcheck=0

[iaas]

name=iaas

baseurl=ftp://iaas/iaas-repo

enabled=1

gpgcheck=0

yum clean all

yum repolist

2.安装redis

yum install redis -y

基础准备

三个节点都执行:

修改主机名

hostnamectl set-hostname master

hostnamectl set-hostname slave1

hostnamectl set-hostname slave2

设置主机名与ip地址映射

echo '192.168.108.91 master

192.168.108.92 slave1

192.168.108.93 slave2' >> /etc/hosts

关闭防火墙和selinux

systemctl stop firewalld && systemctl disable firewalld 

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

setenforce 0

配置一主二从

vi /usr/local/redis/redis.conf

bind 0.0.0.0 ##允许所有主机访问redis

protected-mode no ##关闭保护模式

daemonize yes ##开启后台运行模式

requirepass "123456" ##登陆redis数据库的密码认证

masterauth "123456" ##哨兵模式中设定主库密码与当前库密码同步,保证从库能够提升为主库

replicaof 主IP 6379

cp /usr/local/redis/redis.conf /etc/

/usr/local/redis/src/redis-server /etc/redis.conf ##指定文件

redis-cli

>auth 123456

>slaveof master 6379 ##从节点执行这句

>info replication ##主节点执行这句

配置哨兵模式

vi /usr/local/redis/sentinel.conf

sentinel monitor mymaster 192.168.13.139 6379 2   

##当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了。mymaster是自定义的集群名字 (slave上面写的是master的ip,master写自己ip)

sentinel down-after-milliseconds mymaster 3000

#Sentinel判断3000毫秒没响应,认为主观下线

sentinel failover-timeout mymaster 10000

##若sentinel在该配置值内未能完成failover(故障转移)操作(即故障时master/slave自动切换),则认为本次failover失败

protected-mode no

##关闭加密模式

/usr/local/redis/src/redis-sentinel /etc/redis-sentinel.conf & ##后台启动

验证

master节点:

/usr/local/redis/src/redis-server /etc/redis.conf

redis-cli -p 26379

>info sentine

 

 

posted @   帅的昵称都被用了吗  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示