Redis Predixy 集群

文章目录

    • 一、概述
    • 二、测试规划
    • 三、Redis 服务实例准备
      • 3.1 配置Redis实例
      • 3.2 创建相关资源
      • 3.2 启动Redis服务实例
    • 四、Sentinel 监控准备
      • 4.1 配置 sentine l
      • 3.2 开启 Sentinel
    • 五、安装配置 Predixy
      • 5.1 下载 Predixy
      • 5.2 配置 Predixy
      • 5.3 启动 Predixy 代理
    • 六、测试

如果您对Redis的了解不够深入请关注本栏目,本栏目包括Redis安装,Redis配置文件说明,Redis命令和数据类型说明,Redis持久化配置,Redis主从复制和哨兵机制,Redis Cluster(集群)配置。

一、概述

  • Predixy 是一个开源的代理软件,通常用于提供 Redis 数据存储的高可用性和负载均衡。它的主要用途是充当 Redis 代理,通过分布式代理和负载均衡来管理和优化 Redis 集群的性能和可用性和安全性。适用于需要大规模部署 Redis 数据存储的应用程序,特别是对于需要负载均衡和高可用性的情况。

  • 我在前面讲过Redis Cluster 集群配置,那么即然官方自带了 Redis Cluster 为什么还要使用 Predixy 呢?因为 Predixy 还有 Redis Cluster 没有的功能,如下:

    • 多种部署:Redis Cluster 只支持一种特定的哈希分片架构,而 Predixy 可以适用于多种部署拓扑。而且增加Redis群集后应用程序代码无需修改,就连配置都不修改。
    • 动态的负载均衡:根据实时的节点状态和负载情况,Predixy 智能地将请求路由到最佳的 Redis 节点,以实现负载均衡。
    • 故障转移:当节点发生故障时,Predixy 可以自动检测并将请求重新路由到可用的节点,实现故障转移。
    • 读写分离:Predixy 支持读写分离的配置。它可以将读操作路由到从节点,以分担主节点的负载,并提高读取性能。同时,写操作仍然会路由到主节点,以确保数据的一致性。
    • 其他功能:Predixy 提供了一些额外的功能,如请求重试、请求限流、缓存、请求日志等。这些功能可以增强 Redis 的性能、安全性和稳定性。
  • 开源地址:https://github.com/joyieldInc/predixy

二、测试规划

  • 我这里在同一主机上开启4个Redis服务实例(2主2从),3个Redis Sentinel服务来测试(监控2主2从),示意图如下:
    在这里插入图片描述

三、Redis 服务实例准备

3.1 配置Redis实例

  • 新建4个Redis配置文件,用于配置2主2从Redis服务实例节点。分别为:redis_6391.conf、redis_6392.conf、redis_6393.conf、redis_6394.conf

  • redis_6391.conf

include redis.confport 6391
dir /var/lib/redis/6391
pidfile /var/run/redis_6391.pidsupervised no
daemonize no
logfile ""
appendonly no
  • redis_6392.conf
include redis.confport 6392
dir /var/lib/redis/6392
pidfile /var/run/redis_6392.pidsupervised no
daemonize no
logfile ""
appendonly noreplicaof 127.0.0.1 6391
  • redis_6393.conf
include redis.confport 6393
dir /var/lib/redis/6393
pidfile /var/run/redis_6393.pidsupervised no
daemonize no
logfile ""
appendonly no
  • redis_6394.conf
include redis.confport 6394
dir /var/lib/redis/6394
pidfile /var/run/redis_6394.pidsupervised no
daemonize no
logfile ""
appendonly noreplicaof 127.0.0.1 6393

3.2 创建相关资源

mkdir -p /var/lib/redis/6391
mkdir -p /var/lib/redis/6392
mkdir -p /var/lib/redis/6393
mkdir -p /var/lib/redis/6394

3.2 启动Redis服务实例

  • 启动2个Redis主从服务实例
# 主节点1,端口6391
redis-server redis_6391.conf
# 从节点1,端口6392
redis-server redis_6392.conf# 主节点2,端口6393
redis-server redis_6393.conf
# 从节点2,端口6394
redis-server redis_6394.conf

四、Sentinel 监控准备

  • 配置 sentinel 监控上面的两个Redis主从。

4.1 配置 sentine l

  • sentinel_26391.conf
port 26391
sentinel monitor shard001 127.0.0.1 6391 2
sentinel monitor shard002 127.0.0.1 6393 2
  • sentinel_26392.conf
port 26392
sentinel monitor shard001 127.0.0.1 6391 2
sentinel monitor shard002 127.0.0.1 6393 2
  • sentinel_26393.conf
port 26393
sentinel monitor shard001 127.0.0.1 6391 2
sentinel monitor shard002 127.0.0.1 6393 2

3.2 开启 Sentinel

redis-sentinel sentinel_26391.conf
redis-sentinel sentinel_26392.conf
redis-sentinel sentinel_26393.conf
  • 也可通过这种方式启动:redis-server sentinel_6379.conf --sentinel

五、安装配置 Predixy

5.1 下载 Predixy

  • 下载安装 Predixy
wget https://github.com/joyieldInc/predixy/releases/download/1.0.5/predixy-1.0.5-bin-amd64-linux.tar.gz
tar -zxvf predixy-1.0.5-bin-amd64-linux.tar.gz
cd predixy-1.0.5
cp conf/predixy.conf conf/predixy.conf.bk
cp conf/sentinel.conf conf/sentinel.conf.bk

5.2 配置 Predixy

  • 修改 Predixy 的配置文件:vi conf/predixy.conf

    • 配置端口和哨兵配置文件(sentinel.conf)
    # 修改以下内容Bind 127.0.0.1:7617################################### SERVERS ####################################
    # Include cluster.conf
    Include sentinel.conf
    # Include try.conf
  • 修改 Predixy 的哨兵配置文件(sentinel.conf):vi conf/sentinel.conf

    • 注意这个不是Redis自带的sentinel.conf,而是 Predixy 配置文件目录的 sentinel.conf
    # 添加以下内容SentinelServerPool {Databases 16Hash crc16HashTag "{}"Distribution modulaMasterReadPriority 60StaticSlaveReadPriority 50DynamicSlaveReadPriority 50RefreshInterval 1ServerTimeout 1ServerFailureLimit 10ServerRetryTimeout 1KeepAlive 120Sentinels {+ 127.0.0.1:26391+ 127.0.0.1:26392+ 127.0.0.1:26393}Group shard001 {}# 可以直保留一个组,只有一个组时才能使用事务。Group shard002 {}
    }

5.3 启动 Predixy 代理

  • bin/predixy conf/predixy.conf
    

六、测试

  • redis-cli -p 7617
    

[root@yiqifu-redis conf]# redis-cli -p 7617
127.0.0.1:7617> set aaa 111
OK
127.0.0.1:7617> set bbb 222
OK
127.0.0.1:7617> set ccc 3333
OK
127.0.0.1:7617> watch ccc
(error) ERR forbid transaction in current server pool
127.0.0.1:7617> multi
(error) ERR forbid transaction in current server pool
127.0.0.1:7617>

  • 测试发现不能进行事务和监控操作,这是他的缺点。但是他有扩展方便、动态负载均衡、故障转移、读写分离等功能。还有 Predixy 的集群可以使用Nginx反向代理来实现。

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

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

相关文章

metaRTC集成flutter ui demo编译指南

概要 Flutter是由Google开发的开源UI工具包,用于构建跨平台应用程序,支持linux/windows/mac/android/ios等操作系统。 metaRTC新增flutter demo,支持linux/windows/mac/android/ios操作系统,此demo在ubuntu桌面环境下测试成功。…

传统金融机构加入代币化浪潮,新一轮加密周期的重要组成部分?

新加坡金融管理局 (MAS) 成立了由日本金融厅 (FSA)、英国金融行为监管局 (FCA) 和瑞士金融市场监管局 (FINMA) 组成“守护者计划”政策制定者组(Project Guardian),正在计划对固定收益、外汇和资产管理产品进行资产代币化试点,以推…

pyhton socketserver

网上找到一段代码 关于 socketserver 的使用 本来想用C 和 libevent 写,libevent 对linux 支持的很好,macos 支持的也可以,但是windows 有点不太尽如人意,Qt 框架的 又得被迫开源一些东西,也很烦 先用python 写一个示例,先凑合着用 import socketserverclass MyServer(socketse…

激光雷达和人工智能

几十年来,激光雷达一直是许多行业中非常有用的工具,但直到最近,随着人工智能(AI)解决方案的引入,我们才开始认识到它的真正潜力。激光雷达,又称光探测和测距,是一种遥感技术。它利用…

@echo off 的作用

echo off 的作用 表示关闭批处理文件自身的回显,即执行此句之后的命令不会显示出来,只有输出结果会被显示 整体的理解就是 执行的命令不显示了,显示执行命令后的结果 其中, 表示关闭命令回显功能,即命令执行时不在…

高效处理异常值的算法:One-class SVM模型的自动化方案

一、引言 数据清洗和异常值处理在数据分析和机器学习任务中扮演着关键的角色。清洗数据可以提高数据质量,消除噪声和错误,从而确保后续分析和建模的准确性和可靠性。而异常值则可能对数据分析结果产生严重影响,导致误导性的结论和决策。因此&…

【JavaEE初阶】 认识文件与Java中操作文件

文章目录 🌴认识文件🚩树型结构组织和目录🚩文件路径(Path)🚩知识扩展 🎍Java 中操作文件🚩File 概述📌属性📌构造方法📌方法 🚩File使…

优思学院|RCA(根本原因分析)四大步骤

在现代的制造业或者甚至是商业环境中,问题和突发事件不可避免地出现。 为了有效地解决这些问题并防止它们再次发生,根本原因分析(RCA)成为了至关重要的工具。 RCA是一种系统性的方法,涉及数据采集、因果图、根本原因…

el-dropdown自定义样式,不影响其他组件

原来的样式: 修改后的样式: 给el-dropdown-menu添加类名dropdown-menu <el-dropdown-menu slot"dropdown" class"dropdown-menu"><router-link to"/user/profile"><el-dro…

Linu之VM及WindowsServer安装

# 1.操作系统 ## 1.1.什么是操作系统 操作系统&#xff08;Operating System&#xff0c;简称OS&#xff09;是一种系统软件&#xff0c;它是计算机硬件和应用软件之间的桥梁。它管理计算机的硬件和软件资源&#xff0c;为应用程序提供接口和服务&#xff0c;并协调应用程序的…

自动化混沌工程 ChaosMeta V0.6 版本发布

混沌工程 ChaosMeta 的全新版本 V0.6.0 现已正式发布&#xff01;该版本包含了许多新特性和增强功能&#xff0c;在编排界面提供了包括流量注入、度量等各类节点的支持&#xff0c;可视化支撑演练全流程。解决混沌工程原则中“持续自动化运行实验”的最后一公里问题。 简介 Ch…

CPU就绪情况及其对虚拟机性能的影响

CPU就绪是虚拟化中的一种性能度量&#xff0c;用于指示物理CPU中的潜在问题&#xff0c;作为对系统效率的度量&#xff0c;它用于跟踪性能和资源利用率&#xff0c;并避免严重错误。为了理解它在管理虚拟机中的重要性&#xff0c;我们将探讨CPU就绪作为一种性能指标的作用。 让…