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 123456789
    MasterReadPriority 60
    StaticSlaveReadPriority 50
    DynamicSlaveReadPriority 50
    RefreshInterval 1
    ServerTimeout 1
    ServerFailureLimit 10
    ServerRetryTimeout 1
    KeepAlive 120
    Servers {
        + 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/bin

2)启动
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 6379

127.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)对比

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JavaFX学习教程二

一、JavaFX 体系结构 JavaFX 场景图(Scene Graph)是构建 JavaFX 应用程序的起点,一种树状数据结构,用于排列(和分组)图形对象,以便于逻辑表示。 stage:舞台,操作系统窗口的 JavaFX 表示,是所有…

网络编程的基础知识(适合新手)

网络编程 在Java中,网络编程是指使用Java语言进行网络通信的编程技术。这种技术使得位于不同地理位置的计算机能够通过网络进行通信,实现资源共享和信息传递。 一、定义 Java网络编程是Java语言在网络通信方面的应用,它利用Java提供的网络…

恢复Android数据的综合指南:适用于Android的数据恢复工具

随着存储空间的快速增长,智能手机已成为我们最可靠的个人数据库。我们的 Android 手机不亚于我们自己的延伸,包含各种重要文件、照片、文档、视频、联系人、通话记录等等。由于这些智能 Android 设备上存储了如此多有价值的信息,意外删除或丢…

Java进阶学习笔记22——泛型方法、通配符和上下限

泛型方法: package cn.ensource.d11_generics_method;public class Test {public static void main(String[] args) {// 泛型方法String res test("Java");System.out.println(res);Dog dog1 test(new Dog());System.out.println(dog1);}// 泛型方法pub…

常用API(正则表达式、爬取、捕获分组和非捕获分组 )

1、正则表达式 练习——先爽一下正则表达式 正则表达式可以校验字符串是否满足一定的规则,并用来校验数据格式的合法性。 需求:假如现在要求校验一个qq号码是否正确。 规则:6位及20位之内,0不能在开头,必须全部是数字…

一文了解 - GPS/DR组合定位技术

GPS Global Position System 全球定位系统这个大家都很熟悉, 不做太多介绍。 DR Dead Reckoning 车辆推算定位法, 一种常用的辅助的车辆定位技术。 DR系统的优点: 不需要发射和接收信号; 不受电磁波干扰。 DR系统的缺点&#x…

SVM兵王问题

1.流程 前面六个就是棋子的位置,draw就是逼和,后面的数字six就代表,白棋最少用六步就能将死对方。然后呢,可以看一下最后一个有几种情况: 2.交叉测试 leave one out: 留一个样本作测试集,其余…

精品PPT | 精益生产管理中MES系统的实现与应用(免费下载)

【1】关注本公众号,转发当前文章到微信朋友圈 【2】私信发送 MES系统的实现与应用 【3】获取本方案PDF下载链接,直接下载即可。 如需下载本方案PPT/WORD原格式,请加入微信扫描以下方案驿站知识星球,获取上万份PPT/WORD解决方案&…

深入理解 Spring Web 应用程序初始化流程

前言 在构建基于 Spring 的 Web 应用程序时,了解初始化流程是至关重要的。本文将详细介绍 Servlet 容器的初始化过程,并重点探讨 Spring 框架在其中的作用,特别是 ServletContainerInitializer、SpringServletContainerInitializer 和 WebAp…

2024年软考总结 信息系统管理师

选择题 英文题,我是一题也没把握,虽然我理解意思。 千万不要认为考死记硬背不对。目的不在于这。工程项目中有很多重要的数字,能记住说明你合格。 案例 几乎把答案全写在案例中了。 计算题 今年最简单。没有考成本。 只考了关键路径&a…

微信小程序毕业设计-智慧旅游平台系统项目开发实战(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计…

RAG技术综述

RAG的基本架构。,生成器和检索器。 参考paper:https://arxiv.org/html/2402.19473v4 文中将rag的内容从文本扩展至多模态,打开了思路。 生成器:transformer,LSTM,扩散模型,gan 检索器&#xf…

Sourcetree安装教程及使用

1 Sourcetree介绍 Sourcetree是一款免费的Git图形化客户端,它由Atlassian开发,提供了跨平台的支持,可运行在Windows和Mac操作系统上。Sourcetree可以让开发者更方便地使用Git来管理代码,不需要在命令行中输入复杂的Git命令&#x…

【强训笔记】day25

NO.1 思路&#xff1a;哈希质数判断。 代码实现&#xff1a; #include <iostream> #include<string> #include<cmath> using namespace std;bool isprime(int n) {if(n<2) return false;for(int i2;i<sqrt(n);i){if(n%i0) return false;}return true…

Python筑基之旅-运算符

目录 一、运算符 1、了解定义 2、理解意义 2-1、基本数据处理 2-2、条件判断 2-3、逻辑操作 2-4、赋值和更新 2-5、位操作 2-6、提高代码可读性 2-7、解决实际问题 2-8、学习其他编程语言的基础 3、探索方法 3-1、理解概念 3-2、练习基本运算 3-3、掌握优先级 …

ICML 2024 Mamba 论文总结

2024ICML&#xff08;International Conference on Machine Learning&#xff0c;国际机器学习会议&#xff09;在2024年7月21日-27日在奥地利维也纳举行 &#x1f31f;【紧跟前沿】“时空探索之旅”与你一起探索时空奥秘&#xff01;&#x1f680; 欢迎大家关注时空探索之旅 …

ciscn2024(上传一下,有侵权什么的问题的话联系删除)

Web Simple_php 这个Simple_php一点儿也不Simple (⋟﹏⋞) 源码放这儿了&#xff1a; <?phpini_set(open_basedir, /var/www/html/); error_reporting(0);if(isset($_POST[cmd])){$cmd escapeshellcmd($_POST[cmd]); if (!preg_match(/ls|dir|nl|nc|cat|tail|more|flag…

原生标签WebComponent

文章目录 介绍一、web Component二、怎么使用三、在Vue中使用使用场景 前端必备工具推荐网站(免费图床、API和ChatAI等实用工具): http://luckycola.com.cn/ 介绍 平常浏览各个网站过程中&#xff0c;经常遇到的一种现象&#xff1a;页面广告。 这种广告按照来源可分为两种&…

C++面向对象程序设计 - 输入和输出

程序的输入指的是文件将数据传送给程序&#xff0c;程序的输出指的是从程序将数据传送输出文件。 C的输入和和输出包括以下三个方面&#xff1a; 对系统指定的标准设备的输入和输出&#xff0c;即从键盘输入数据&#xff0c;输出到显示器屏幕。以外存磁盘&#xff08;或光盘、…

车道线识别与预警系统LDWS(代码+教程)

车道线识别与预警系统&#xff08;Lane Departure Warning System, LDWS&#xff09;作为智能交通系统中的重要组成部分&#xff0c;旨在通过先进的图像处理和计算机视觉技术&#xff0c;实时监测车辆行驶过程中的车道位置&#xff0c;预防因驾驶员疏忽或疲劳导致的车道偏离事故…