当前位置: 首页 > article >正文

redis 6.x集群搭建

redis6集群搭建

安装文件下载

redis-6.2.6.tar.gz

编译

tar -zxvf redis-6.2.6.tar.gz
cd redis-6.2.6/
make MALLOC=libc
make install PREFIX=/opt/soft/redis

复制可执行文件

cp  /opt/soft/redis/redis-cli /usr/bin/redis-cli
cp  /opt/soft/redis/redis-server /usr/bin/redis-server

修改配置文件

bind 0.0.0.0
protected-mode no
#自定义端口
port 6301
#后台启动
daemonize yes
#主从节点同步授权密码
masterauth abc123
#redis服务的访问密码
requirepass abc123
#pid文件
pidfile /data/redis/run/redis_6301.pid
#日志文件
logfile /data/redis/log/redis_6301.log
#目录
dir /data/redis/data/6301
#内存限制
maxmemory 5GB
#不开启aof
appendonly no

同步文件到集群节点

修改host

vim /etc/hosts
10.111.222 222D18
10.111.222.71 227D19
10.111.222.70 227D20

免密登录

ssh-keygen -t rsa(一路回车)
ssh-copy-id  222D18

可以使用rsync或者scp,我这里使用rsync

编写批量同步脚本
vim xsync.sh

#!/bin/bash
#1 获取输入参数个数,如果没有参数直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi

#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname

#3 获取上级目录绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir

#4 获取当前用户
user=`whoami`

#5 循环同步
for host in "222d18" "222D19" "222D20"
do
        echo ------------------- $host --------------
        echo "rsync -rvl $pdir/$fname $user@$hosttme$host:$pdir"
        rsync -rvl $pdir/$fname $user@$host:$pdir
done

同步

chmod a+x xsync.sh
./xsync.sh /opt/soft/redis

配置服务

vim /etc/systemd/system/multi-user.target.wants/redis-6301.service

[Unit]
Description=The redis-cluster-server-6301 Process Manager
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/usr/bin/redis-server /data/redis/conf/redis_6301.conf
PrivateTmp=true

[Install]
WantedBy=multi-user.target

设置开机启动

systemctl daemon-reload
systemctl enable redis-6301
systemctl start redis-6301

增加防火墙策略

firewall-cmd --zone=public --add-port=6301/tcp --permanent
firewall-cmd --zone=public --add-port=16301/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports

创建集群

redis-cli -a gtja@emoneydcn --cluster create 10.111.222.18:6300 10.111.222.18.19:6300 10.111.222.20:6300 --cluster-replicas 0

在这里插入图片描述
验证
在这里插入图片描述

添加slave节点

redis-cli -a abc123 --cluster add-node 10.111.222.19:6301 10.111.222.20:6300 --cluster-slave --cluster-master-id 4b5b2836805e691068ac2fa29a4bf76a197b70c2

redis-cli -a abc123 --cluster add-node 10.111.222.20:6301 10.111.222.20:6300 --cluster-slave --cluster-master-id 19a8e454e137b524cbd06bbdd61462021b52e47e

redis-cli -a abc123 --cluster add-node 10.111.222.18:6301 10.111.222.20:6300 --cluster-slave --cluster-master-id f9a2c11b814755148f1f4a1b6c6b8a8c5a799e1c

在这里插入图片描述

踩过在坑

appendonly yes
aof文件不断变大导致redis服务器磁盘空间不足。
解决方案:关闭aof配置,重启所有节点后恢复正常。

masterauth未配置
Unexpected reply to PSYNC from master: -NOAUTH Authentication required.
在这里插入图片描述

masterauth配置错误
在这里插入图片描述


http://www.kler.cn/a/226611.html

相关文章:

  • Go之流程控制大全: 细节、示例与最佳实践
  • 2024/2/2
  • 【后端】乐观锁和悲观锁
  • MYSQL基础问题
  • 题目 1159: 偶数求和
  • SQLite
  • Spring Boot解决跨域问题的3种方案
  • 2024/2/3
  • SQL--IFNULL()、NULLIF()、ISNULL()函数 简单明了的讲解
  • QT中的QImage与QPixmap区别
  • 边缘计算网关在智能制造中有哪些应用?-天拓四方
  • 【kubernetes】集群网络(二):Flannel的VxLan、Host-GW模式
  • C++输出地址
  • 真机调试,微信小程序,uniapp项目在微信开发者工具中真机调试,手机和电脑要连同一个wifi,先清空缓存,页面从登录页进入,再点真机调试,这样就不会报错了
  • Flink 添加 / 部署 Jar 包的若干注意事项
  • Kotlin-集成SpringBoot+MyBatis+代码生成器
  • 滇西科技师范学院食堂大宗物资采购项目(冰冻制品类)招标公告
  • Mysql-备份与恢复
  • [机器学习]TF-IDF算法
  • 蓝桥杯---煤球数目