redis集群配置

redis集群配置.pdf

跳转/opt/redis → cd /opt/redis

1、下载redis

wget http://download.redis.io/releases/redis-6.2.1.tar.gz

2、解压
tar -xzvf redis-6.2.1.tar.gz

3、编译
cd /opt/redis/redis-6.2.1
make MALLOC=libc

4、安装
make PREFIX=/opt/redis/ install
⽣成bin
image.png
5、每台机器创建两个节点

mkdir redis-cluster  
cd redis-cluster  
mkdir redis01   
mkdir redis02 ...  

6、复制redis.conf到节点上

cp /opt/redis/redis-6.2.1/redis.conf  /opt/redis/redis-cluster/redis01/  
cp /opt/redis/redis-6.2.1/redis.conf  /opt/redis/redis-cluster/redis02/  

修改⽂件

# 指定只能以192.168.0.226这个IP访问  bind 192.168.0.226  
# 指定端⼝  
port 7001  
# 启动后台运⾏  
daemonize yes  
# 存放进程Id  
pidfile /opt/redis/redis-cluster/redis01/7001.pid  
# ⽇志⽂件  
logfile "/dev/null"  
# 3600秒内有⼀个key变化就执⾏快照持久化  
save 3600 1  
# 快照存放⽂件  
dbfilename 7001.rdb  
# 是否启动保存操作⽇志appendonly yes  
# 操作⽇志存放⽂件  
appendfilename "7001.aof"  
# 是否开启集群  
cluster-enabled yes  
# 集群配置⽂件(启动后⾃动⽣成)  
cluster-config-file nodes-7001.conf  
# 集群节点pingpong超时时间  
cluster-node-timeout 5000  

7、复制bin到节点上

cd /opt/redis  
cp -r /opt/redis/bin/ redis-cluster/redis01  

8、创建启动redis节点的脚本⽂件

(1)跳转⾄: cd /opt/redis/redis-cluster

(2)编制start-all.sh脚本内容:

cd redis01

./redis-server redis.conf

cd …

cd redis02

./redis-server redis.conf

cd …

(3)添加权限 chmod -x start-all.sh

注意:shell ⽂件导致格式异常不能正常执⾏

解决⽅法:1、 vim ⽂件 2、 输⼊ : set ff=unix 然后回⻋ 3、 保存

(4)启动 ./start-all.sh

9、在另外两台服务器进⾏相同操作 redis03 redis04 redis05 redis06

10、集群

cd /opt/redis/redis-cluster/redis01

⽆密码: ./redis-cli --cluster create 192.168.0.226:7001 192.168.0.226:7002 192.168.0.227:7003 192.168.0.227:7004 
192.168.0.228:7005 192.168.0.228:7006 --cluster-replicas 1  有密码: ./redis-cli -a pwd123 --cluster create 192.168.0.226:7001 192.168.0.226:7002 192.168.0.227:7003 
192.168.0.227:7004 192.168.0.228:7005 192.168.0.228:7006 --cluster-replicas 1

image.png

11、客⼾端登录

./redis-cli -h 192.168.0.226 -c -p 7001 -a pwd123
加上–raw后,获取到的value是原始输出,⽽不是16进制输出。
./redis-cli --raw -h 192.168.0.226 -c -p 7001 -a pwd123

12.命令

停⽌命令: ./redis-cli -h 192.168.0.226 -c -p 7001 -a pwd123 shutdown

./redis-cli -h 192.168.0.226 -c -p 7002 -a pwd123 shutdown

./redis-cli -h 192.168.0.227 -c -p 7003 -a pwd123 shutdown

./redis-cli -h 192.168.0.227 -c -p 7004 -a pwd123 shutdown

./redis-cli -h 192.168.0.228 -c -p 7005 -a pwd123 shutdown

./redis-cli -h 192.168.0.228 -c -p 7006 -a pwd123 shutdown

启动命令: cd /opt/redis/redis-cluster

./start-all.sh

12、集群需要关注的地⽅

image.png

13、迁移异常

启动redis 集群的时候出现了这个问题 :

image.png

解决办法:

  1. 先将redis 进程⼲掉 ps -ef | grep redis kill pid

  2. 将每个节点下aof、rdb、nodes.conf本地备份⽂件删除,redis.conf appendfilename ;

  3. 之后再执⾏脚本,成功执⾏;

  4. 这种情况可能发⽣在每次⾮正常关闭redis集群的时候

image.png

三、集群启动异常

在第10步创建集群时,报 Waiting for the cluster to join…并一直卡在这里

遇到这种情况大部分是因为 集群总线 的端口没有开放!

集群总线
每个Redis集群中的节点都需要打开两个TCP连接。一个连接用于正常的给Client提供服务,
比如7001,还有一个额外的端口(通过在这个端口号上加10000)作为数据端口,
例如:redis的端口为7001,那么另外一个需要开通的端口是:7001 + 10000, 
即需要开启 17001。17001端口用于集群总线,这是一个用二进制协议的点对点通信信道。
这个集群总线(Cluster bus)用于节点的失败侦测、配置更新、故障转移授权,等等。

此时可以采用关闭本机防火墙的办法,基于安全性考虑,建议用在本机防火墙中开放相应端口。

#开放防火墙端口

firewall-cmd --zone=public --add-port=7001/tcp --permanent

firewall-cmd --zone=public --add-port=17001/tcp --permanent

firewall-cmd --reload

#其他服务节点端口依次执行。

#关闭redis集群中的所有实例,直接kill -9 就行

#于此同时删除掉每个节点文件下的 .aof,.rdb,nodes.conf文件,如果是首次创建集群.rdb文件应该没有,如图中标示

image.png

#执行集群创建命令
./redis-cli -a szcx@2021 --cluster create ip1:7001 ip1:7002 ip2:7003 ip2:7004 ip3:7005 ip3:7006 --cluster-replicas 1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/460044.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Talk|香港中文大学(深圳)张雪遥:音频生成开源工具包Amphion的歌声转换指南

本期为TechBeat人工智能社区第570期线上Talk。 北京时间2月7日(周三)20:00,香港中文大学(深圳)博士生—张雪遥的Talk已准时在TechBeat人工智能社区开播! 他与大家分享的主题是: “音频生成开源工具包Amphion的歌声转换指南”,系统地介绍他的团…

mysql 对于null字段排序处理

最近遇到一个需求 ,需要对一个报表的多个字段进行多字段复杂条件排序 排序字段为NULL时 Mysql对于排序字段为NULL时,有自身默认的排序规则,默认是认为null 值 是无穷小 ELECT id,script_id,last_modified,live_count,next_show FROM virtua…

红队打靶练习:PHOTOGRAPHER: 1

目录 信息收集 1、arp 2、nmap 3、nikto 目录扫描 1、gobuster 2、dirsearch WEB 信息收集 enum4linux smbclient 8000端口 CMS利用 信息收集 文件上传漏洞利用 提权 信息收集 get user.txt get flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# a…

AI专题:2023年AI和标准化网络安全报告

今天分享的是AI系列深度研究报告:《AI专题:2023年AI和标准化网络安全报告》。 (报告出品方:enisa) 报告共计:37页 文件目的和目标 本文件的总体目标是概述与人工智能(AI)网络安全有关的标准(现有的、正在…

ChatGPT 3.5与4.0:深入解析技术进步与性能提升的关键数据

大家好,欢迎来到我的博客!今天我们将详细比较两个引人注目的ChatGPT版本——3.5和4.0,通过一些关键数据来深入解析它们之间的差异以及4.0版本的技术进步。 1. 模型规模与参数 ChatGPT 3.5: 参数数量:约1.7亿个模型层数…

格子表单GRID-FORM | 文档网站搭建(VitePress)与部署(Github Pages)

格子表单/GRID-FORM已在Github 开源,如能帮到您麻烦给个星🤝 GRID-FORM 系列文章 基于 VUE3 可视化低代码表单设计器嵌套表单与自定义脚本交互文档网站搭建(VitePress)与部署(Github Pages) 效果预览 格…

FPGA高端项目:解码索尼IMX327 MIPI相机转USB3.0 UVC 输出,提供FPGA开发板+2套工程源码+技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 MIPI 编解码方案 3、本 MIPI CSI-RX IP 介绍4、个人 FPGA高端图像处理开发板简介5、详细设计方案设计原理框图IMX327 及其配置MIPI CSI RX图像 ISP 处理图像缓存UVC 时序USB3.0输出架构FPGA逻辑设计工程源码架构SDK软件工程源…

CentOS镜像如何下载?在VMware中如何安装?

一、问题 CentOS镜像如何下载?在VMware中如何安装? 二、解决 1、CentOS镜像的下载 (1)官方网站 The CentOS Project (2)官方中文官网 CentOS 中文 官网 (3)选择CentOS Linux…

yarn/npm certificate has expired

目录 报错 原因:HTTPS 证书验证失败 方法 a.检查网络安全软件:可能会拦截或修改 HTTPS 流量 b.strict-ssl:false关闭验证【临时方法】 报错 info No lockfile found. [1/4] Resolving packages... error Error: certificate has expired at TLS…

【MySQL进阶之路】BufferPool底层设计(上)

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

设计模式2-对象池模式

对象池模式,Object Pool Pattern,当你的应用程序需要频繁创建和销毁某种资源(比如数据库连接、线程、socket连接等)时,Object Pool 设计模式就变得很有用。它通过预先创建一组对象并将它们保存在池中,以便在…

【Godot4.2】文件系统自定义控件 - GroupButtons

GroupButtons 概述 读者朋友们好,我是巽星石,这是我的Godot4.2文件系统自定义控件系列文章。 在很多程序或插件设计中,都会用到一堆按钮的形式,好处是比较直观,用啥点啥,本质上相当于一个简化的二级树形…