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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通