Linux服务升级:Predixy 升级代理 Redis-cluster 集群

目录

 一、实验

1.环境

2. 启动Redis服务

3.Predixy 升级代理 Redis-cluster 集群

二、问题

1. Predixy进行set操作报错

2.如何创建脚本启动predixy

3.Redis代理对比


 一、实验

1.环境

(1)主机

表1  主机

系统版本节点软件IP备注
CentOS7.9Redis0Predixy192.168.204.40

   Redis代理

Redis第一个Redis实例
Redis1Redis192.168.204.41第二个Redis实例
Redis2Redis192.168.204.42第三个Redis实例
Redis3Redis192.168.204.43第四个Redis实例
Redis4Redis192.168.204.44第五个Redis实例
Redis5Redis192.168.204.45第六个Redis实例

 (2)Termius连接

主机

列表

2. 启动Redis服务

(1)Redis集群部署

可以参考本人博客:

数据库应用:Redis主从复制、哨兵、cluster集群-CSDN博客

(2)所有节点启动Redis服务

cd /opt/redis-5.0.7/
redis-server redis.conf   #启动redis节点

Redis0

Redis1

Redis2

Redis3

Redis4

Redis5

(3)策略

Redis0部署Predixy,以下操作均在Redis0上操作。

(4)配置编译环境

yum install libstdc++-static -y

yum -y install gcc automake autoconf libtool make

yum install gcc gcc-c++

(4)下载wget工具

yum install wget -y

3.Predixy 升级代理 Redis-cluster 集群

(1) 查阅

https://github.com/joyieldInc/predixy

最新版为7.0.1

https://github.com/joyieldInc/predixy/releases/download/7.0.1/predixyFreeEdition-7.0.1-amd64-linux.tar.gz

1.0.5版本:

https://github.com/joyieldInc/predixy/releases/download/1.0.5/predixy-1.0.5-bin-amd64-linux.tar.gz

(3)下载

wget https://github.com/joyieldInc/predixy/archive/1.0.5.tar.gz

(4)解压

tar -zxvf 1.0.5.tar.gz

(5)查看

cd predixy-1.0.5/
ls

(6)移动目录

mv predixy-1.0.5/ /usr/local/src

查看

cd /usr/local/src;ls

(7) 编译

cd predixy-1.0.5/
make -j4

(8)复制编译文件

进入src目录,把编译好的predixy拷贝到/usr/local/bin下

cd src && cp predixy /usr/local/bin/

查看

ls

(9)复制配置文件

把src下的predixy-1.0.5/conf/下的所有配置文件拷贝/usr/local/bin下

cp /usr/local/src/predixy-1.0.5/conf/* /usr/local/bin

(10)修改cluster.conf 配置文件

修改 /usr/local/bin 目录下cluster.conf 

vim  /usr/local/bin/cluster.conf

修改前:

修改后:

ClusterServerPool {# 连接集群中redis的密码Password 123456789MasterReadPriority 60StaticSlaveReadPriority 50DynamicSlaveReadPriority 50RefreshInterval 1ServerTimeout 1ServerFailureLimit 10ServerRetryTimeout 1KeepAlive 120Servers {+ 192.168.204.40:6379+ 192.168.204.41:6379+ 192.168.204.42:6379+ 192.168.204.43:6379+ 192.168.204.44:6379+ 192.168.204.45:6379}
}

(11)修改predixy.conf 配置文件

修改 /usr/local/bin 目录下predixy.conf 文件

vim  /usr/local/bin/predixy.conf

修改前:(默认predixy代理连接端口号7617)

修改后:(放开Cluster注释)

找到SERVERS模块,选用其中一种放开注释(Sentinel和Cluster只能选其一),放开sentinel的同时还要注释掉try

(12)修改auth.conf配置文件

修改 /usr/local/bin 目录下auth.conf 文件,predixy代理连接密码为 123456789

vim  /usr/local/bin/auth.conf 

修改前:

修改后:

Authority {# 连接代理的密码Auth "123456789" {Mode write}
}

(13)启动predixy

1)首先进入目录
cd /usr/local/bin2)启动
nohup predixy predixy.conf > /tmp/predixy.log 2>&1 &;3)查看日志:tail -f /tmp/predixy.log

进入目录启动

连接代理

(14)连接predixy 代理,进行第一批次操作redis数据

redis-cli -h 192.168.204.40 -p 7617 -a 123456789#执行set操作(写入键值对)
127.0.0.1:7617> set cicd 123
OK
127.0.0.1:7617> set devops 123
OK
127.0.0.1:7617> set kubernetes 123
OK

(15)分别进入Redis实例

redis-cli  -p 6379
keys *
exit

Redis0

Redis1  (name为之前数据,后续出现可忽略)

Redis2 

Redis3

Redis4

Redis5

(16)连接predixy 代理,进行第二批次操作redis数据

redis-cli -h 192.168.204.40 -p 7617 -a 123456789#执行set操作(写入键值对)
127.0.0.1:7617> set jenkins 123
OK
127.0.0.1:7617> set gitlab 123
OK
127.0.0.1:7617> set nexus 123
OK
127.0.0.1:7617> set sonarqube 123
OK
127.0.0.1:7617> set harbor 123
OK
127.0.0.1:7617> set argocd 123
OK

(17)分别进入Redis实例

redis-cli  -p 6379
keys *
exit

 Redis0

Redis1 

Redis2 

Redis3

Redis4

Redis5

(17)连接predixy 代理,进行第三批次操作redis数据

redis-cli -h 192.168.204.40 -p 7617 -a 123456789#执行set操作(写入键值对)
127.0.0.1:7617> set one 1
OK
127.0.0.1:7617> set two 2
OK
127.0.0.1:7617> set three 3
OK
127.0.0.1:7617> set four 4
OK
127.0.0.1:7617> set five 5
OK
127.0.0.1:7617> set six 6
OK

(18)分别进入Redis实例

redis-cli  -p 6379
keys *
exit

 Redis0

Redis1 

Redis2 

Redis3

Redis4

Redis5

(19)统计

表2 写入键值对分布情况统计

批次

Redis0

Redis1Redis2Redis3Redis4Redis5

第一批次

(分布)

devopscicdcicdkubernetes

第二批次

(分布)

jenkins

jenkins

gitlab

nexus

sonarqube

arogcdharbor

第三批次

(分布)

threefour

one

four 

five

six

two

二、问题

1. Predixy进行set操作报错

(1)报错

READONLY You can't write against a read only replica

(2)原因分析

查看日志

(3)解决方法

1)第一种方法:修改 redis.conf 配置文件(永久生效)
修改 redis.conf 配置文件中的参数  slave-read-only  yes ,将 yes 修改为 no ;
然后保存并重启 redis 服务,此刻从服务器就具备了 读写权限。(注意:此方法必须重启 Redis 服务,才能使配置生效。)2)第二种方法:redis-cli 命令行中使用 config set 命令修改
在从Redis从服务器客户端命令行中 (redis-cli),通过 config set slave-read-only no 进行设置,立即生效,不需要重启 Redis 服务。(注意:若Redis从服务器重新启动,之前的设置参数就会失效,又会出现 redis 从服务器只有读权限。)

这里采用第二种方法:

redis-cli -p 6379127.0.0.1:6379> config get slave-read-only
1) "slave-read-only"
2) "yes"
127.0.0.1:6379> config set slave-read-only no
OK
127.0.0.1:6379> config get slave-read-only
1) "slave-read-only"
2) "no"
127.0.0.1:6379>

2.如何创建脚本启动predixy

(1)命令

#!/bin/bash
cd /usr/local/bin
nohup predixy predixy.conf   > /tmp/predixy.log 2>&1 &
echo "======== success  ========"

3.Redis代理对比

(1)对比

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

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

相关文章

嵌入式全栈开发学习笔记---C语言笔试复习大全22

目录 结构体 结构体的声明 定义结构体变量 访问结构体成员进行初始化 通过结构体变量名访问结构体成员 结构体指针 结构体指针的定义 通过结构体指针访问结构体成员 结构体数组 结构体数组的定义 遍历结构体数组 结构体的长度(笔试重点) 上一…

就业班 第三阶段(ELK) 2401--5.20 day1 ELK 企业实战 ES+head+kibana+logstash部署(最大集群)

ELKkafkafilebeat企业内部日志分析系统 1、组件介绍 1、Elasticsearch: 是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大功能。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的&#xff…

上门服务系统开发|东邻到家系统|上门服务系统开发流程

上门服务小程序的开发流程是一个复杂且精细的过程,涉及到需求分析、设计规划、开发实施、测试验收以及上线运营等多个环节。下面将详细介绍上门服务小程序的开发流程,帮助读者全面了解并掌握其中的关键步骤。 一、需求分析 在开发上门服务小程序之前&am…

2024年全国大学生电工数学建模竞赛B题解析 | 数据处理 代码 论文分享

B 题:大学生平衡膳食食谱的优化设计及评价 1 数据预处理2 问题一2.1 问题1.12.1.1 评价体系的构建2.1.2 指标计算2.1.3 指标计算结果2.1.4 基于层次分析法的膳食营养评价模型2.1.5 评价模型的求解 2.2 问题1.22.2.1 食物与成分间拓扑关系的构建2.2.2 微调模型的建立…

原哥花了1个多月的时间终于开发了一款基于android studio的原生商城app

大概讲一下这个app实现的功能和前后端技术架构。 功能简介 广告展示商品展示跳转淘宝联盟优惠卷购买发布朋友圈宝妈知识资讯商品搜索朋友圈展示/点赞/评论登陆注册版本升级我的个人资料商品和资讯收藏我的朋友圈意见反馈 安卓端技术选型 Arouter组件化daggerrxjavaretrofit…

音视频开发4-补充 FFmpeg 开发环境搭建 -- 在windows 上重新build ffmpeg

本节的目的是在windows 上 编译 ffmpeg 源码,这样做的目的是:在工作中可以根据工作的实际内容裁剪 ffmpeg,或者改动 ffmpeg 的源码。 第一步 :下载, 安装,配置 ,运行 msys64 下载 下载地址&…

嵌入式进阶——LED呼吸灯(PWM)

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 PWM基础概念STC8H芯片PWMA应用PWM配置详解占空比 PWM基础概念 PWM全称是脉宽调制(Pulse Width Modulation&#xff09…

Keyshot v11 解锁版安装教程 (3D光线追踪与全域光渲染程序)

前言 keyshot是一款实时渲染模式的软件。实时渲染是目前比较流行的一种渲染方式,优点是快速。调节的材质,灯光修改,光影变化等修改的各种参数结果,所见即所得,意思是你在软件操作界面看到的,就是最终的结果…

html 引用vue3 element 首次加载缩成一团 挤在一起

问题:原生html引用vue,element plus 分析: vue.js, element脚本过大,首次加载网络慢的话,会是缩在这里,没完全渲染 解决: 没加载之前,不显示div,显示一个加载提示语 改动地方app…

深入探索MySQL SELECT查询:从基础到高级,解锁数据宝藏的密钥

系列文章目录 更新ing... MySQL操作全攻略:库、表、数据、事务全面指南深入探索MySQL SELECT查询:从基础到高级,解锁数据宝藏的密钥MySQL SELECT查询实战:练习题精选,提升你的数据库查询技能PyMySQL:连接P…

urllib_post请求_百度翻译之详细翻译

百度翻译有一个详细翻译的接口: post请求: 请求参数(较多): 打印之后,发现有问题: 改一下请求头: 将Accept-Encoding注释掉,因为我们使用的是utf-8编码: 加上…

基于深度学习和去卷积的盲源分离方法在旋转机械上的应用

关键词:预测性维护、盲源分离、振动分析、传递函数移除、二阶循环平稳性、轴承监测、机器学习 振动是旋转机械中主要的故障指示器,它们主要来源于两个方面:一个是与齿轮相关的振动(主要源于齿轮啮合过程中的冲击和不平衡负载&…

Python数据分析实验四:数据分析综合应用开发

目录 一、实验目的与要求二、主要实验过程1、加载数据集2、数据预处理3、划分数据集4、创建模型估计器5、模型拟合6、模型性能评估 三、主要程序清单和运行结果四、实验体会 一、实验目的与要求 1、目的: 综合运用所学知识,选取有实际背景的应用问题进行…

el-transfer和el-tree进行结合搞一个树形穿梭框

由于业务需求需要在穿梭框里使用树形结构,但是本身element里并不支持,于是参考了别的大佬发的文章作为思路及后续自己新增了一些处理功能。 目录 1.拷贝代码放到自己的项目目录中 2.改造el-transfer的源码 3.修改tree-transfer-panel.vue文件 4.修改…

MFC GDI 绘图模式、映射模式、画笔、笔、字体

一 GDI 绘图模式(RoP2 Mode) 在使用VC MFC进行图形程序编程时,常会用到GDI绘图指令,而要做到绘图时有橡皮筋动态效果,就需设置GDI绘图模式。GDI绘图模式有多种,如下: 常用R2_NOT模式来实…

如何修复 System has not been booted with systemd 报错信息?

如何修复 System has not been booted with systemd 报错信息? 一、问题描述: 我们在学习 linux 系统时,使用 systemd 命令(比如 sudo systemctl status ssh),可能会遇到一个报错信息: System…

VS2022上通过C++绘图库ROOT库绘制一个3D曲面图

ROOT库提供了强大的交互式图形功能。通过使用ROOT库的TCanvas和TApplication类,可以创建一个交互式的图形窗口,可以对图形进行缩放、平移、旋转等操作,并且可以通过鼠标和键盘与图形进行交互,这点实在是太厉害了,也就是…

Macos14.4 安装MySQL5.7

文章目录 前言一、MySQL介绍二、安装步骤1.下载2.安装3.配置1.进入系统设置2.启动服务3.配置环境变量4.修改密码 FAQ1.双击安装时提示:检测恶意软件,无法打开2.修改环境变量文件提示:readonly option is set (add ! to override)文件权限不足…

QT常量中有换行符

头文件添加: #pragma execution_character_set("utf-8")