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.mzph.cn/bicheng/15972.shtml

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

相关文章

Springboot开发 -- Postman 调试类型详解

引言 在 Spring Boot 应用开发过程中,接口测试是必不可少的一环。Postman 作为一款强大的 API 开发和测试工具,可以帮助开发者轻松构建、测试和管理 HTTP 请求。本文将为大家介绍如何在 Spring Boot 开发中使用 Postman 进行接口测试。 一、准备工作 安…

C/C++|malloc分配内存详解

看本节前,希望读者有linux内存分布的基本概念,可以阅读这篇文章: 进程虚拟地址空间和函数调用栈 在本节中希望读者可以一口气阅读完所有内容。 本博客内容全部来自小林coding:malloc 是如何分配内存的? 这里仅为笔记记…

Linux/Ubuntu 中安装 ZeroTier,实现内网穿透,2分钟搞定

相信很多人都有远程连接家中设备的需求,如远程连接家中的NAS、Windows等服务,所以会涉及到一个内网穿透工具的使用,如果没有公网IP的情况下,推荐大家使用ZeroTier,这是一款强大的内网穿透工具。 mac和windows版的操作…

Nginx-狂神说

Nginx概述 公司产品出现瓶颈? 我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。 但是慢慢的,使用我们平台…

K8S认证|CKA题库+答案| 13. sidecar 代理容器日志

目录 13、使用 sidecar 代理容器日志 CKA v1.29.0模拟系统免费下载试用: 题目: 开始操作: 1)、切换集群 2)、生成yaml文件 3)、官网找模板 4)、编辑yaml文件 5)、应用yaml…

车载电子电器架构 —— 智能座舱技术

车载电子电器架构 —— 智能座舱技术 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的…

GEO数据挖掘-GEO背景知识+表达芯片分析思路

From生物技能树 GEO数据挖掘第一节 (pipeline) 文章目录 1.图表分析2.GEO背景介绍及分析思路3.代码分析流程4.复杂数据分析理论知识1.数据从哪里来2.有什么类型的数据可挖掘3.如何筛选基因(分析方法)在这里插入图片描述 图表介绍1…

Jenkins + github 自动化部署配置

1 Jenkins安装 AWS EC2安装Jenkins:AWS EC2 JDK11 Jenkins-CSDN博客 AWS EC2上Docker安装Jenkins:https://blog.csdn.net/hhujjj2005/article/details/139078402 2 登录jenkins http://192.168.1.128:8080/ $ docker exec -it d1851d9e3386 /bin/ba…

Multi-objective reinforcement learning approach for trip recommendation

Multi-objective reinforcement learning approach for trip recommendation A B S T R A C T 行程推荐是一项智能服务,为游客在陌生的城市提供个性化的行程规划。 它旨在构建一系列有序的 POI,在时间和空间限制下最大化用户的旅行体验。 将候选 POI 添…

【Shell】sed编辑器实例

sed是用来解析和转换文本的工具,它使用简单,是简洁的程序设计语言。 sed编辑器 (一) sed编辑器基础1. 简介2. sed的模式空间 (二)基本的sed编辑命令(三)sed命令实例1. 向文件中添加或…

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

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

Linux|操作系统|如何下载各个版本的centos操作系统

前言: centos做为一个现在比较常用的Linux社区版本,还是比较受欢迎的,那么,如何下载centos的安装包,也就是centos的操作系统呢? 首先,我们应该知道硬件底层有aarch64,ppc64&#x…

【限免】短时傅里叶变换时频分析【附MATLAB代码】

来源:微信公众号:EW Frontier 简介 一种能够同时对信号时域和频域分析的方法——短时傅里叶变换(STFT),可以在时频二维角度准确地描述信号 的时间、频域的局部特性,与其他算法不同,通过该算法可…

【Elasticsearch】Centos7安装Elasticsearch、kibana、IK分词

目录 本文安装包下载地址注意安装elasticsearch1.上传文件2.解压elasticsearch-6.3.1.tar.gz3.开启远程连接权限4.修改其他配置[root用户操作]5.重启虚拟机6.启动es7.外部访问 安装kibana-61.解压2.配置3.启动kibana4.访问5.在开发工具中做数据的增删改查操作 安装IK分词1.wind…

软件安全复习

文章目录 第一章 软件安全概述1.1 信息定义1.2 信息的属性1.3 信息安全1.4 软件安全1.5 软件安全威胁及其来源1.5.1 软件缺陷与漏洞1.5.1.1 软件缺陷1.5.1.2 漏洞1.5.1.3 软件漏洞1.5.1.4 软件缺陷和漏洞的威胁 1.5.2 恶意软件1.5.2.1 恶意软件的定义1.5.2.2 恶意软件的威胁 1.…

携手AI,如何共赢未来?

5/25日参加了一个培训分享会,由博奥研究院、武汉博奕咨询和华工科技联合举办,主题是“携手Ai,共赢未来”。 抱着跟书友线下交流的心态我参与了,参与前我对博奥做了基础了解,他们跟工信部考试和教育中心有合作&#x…

【C语言】指针作为参数(传值调用vs传址调用)

前言 在前面讲了那些指针相关的内容后,是时候探讨一下指针有什么作用了。 在C语言中,指针有多种各不相同的应用,在本篇文章中,我们探讨一下指针作为函数参数的作用(对比传值与传址两种不同函数调用方式)。…

【QGIS入门实战精品教程】10.7: 基于DEM的地形因子分析(坡度、坡向、粗糙度、山体阴影、耐用指数)

文章目录 一、加载dem二、山体阴影三、坡度四、坡向五、地形耐用指数六、地形位置指数七、地表粗糙度一、加载dem 二、山体阴影 方法一:符号系统 利用符号系统中的山体阴影,渲染出阴影效果。 方法二:山体阴影工具 该算法计算输入中的数字化地形模型的山体阴影。根据太阳的位…

2024 年 5 个 GO REST API 框架

什么是API? API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值: 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。API不仅仅是几行代码;这些是为移动开…

kali下载zsteg和stegpy

1.kali下载zsteg 从 GitHub 上克隆zsteg到kali git clone https://github.com/zed-0xff/zsteg 切换目录 cd zsteg 用于安装名为 zsteg 的 Ruby Gem 包 gem install zsteg 2.kali下载stegpy 下载网站内的stegpy-master压缩包GitCode - 开发者的代码家园 并拉到kali中 切换到s…