搭建高可用及负载均衡的Redis
搭建高可用及负载均衡的Redis系统是确保数据存储和访问高效且可靠的关键。本文将详细介绍如何配置高可用的Redis集群,并通过负载均衡实现性能优化。
高可用Redis架构设计
高可用性是指系统在部分组件失效时仍能继续运行。对于Redis,高可用架构通常包括主从复制、哨兵模式和Redis集群。以下是详细步骤:
1. 主从复制
主从复制是一种基本的高可用方案,通过一个主节点和多个从节点构成。主节点处理所有写操作,从节点处理读取请求。这样,读操作可以分散到多个从节点,提升性能。
配置步骤
-
配置主节点
在主节点的配置文件
redis.conf
中,确保以下设置:bind 0.0.0.0 port 6379
-
配置从节点
在每个从节点的配置文件
redis.conf
中,添加以下设置:replicaof <master-ip> <master-port>
例如:
replicaof 192.168.1.100 6379
-
启动Redis实例
启动主节点和从节点的Redis服务:
redis-server /path/to/redis.conf
2. Redis哨兵模式
Redis哨兵模式在主从复制的基础上增加了自动故障转移功能。当主节点不可用时,哨兵会自动将某个从节点提升为新的主节点。
配置步骤
-
配置哨兵
创建哨兵配置文件
sentinel.conf
,内容如下:port 26379 sentinel monitor mymaster 192.168.1.100 6379 2 sentinel down-after-milliseconds mymaster 5000 sentinel failover-timeout mymaster 60000 sentinel parallel-syncs mymaster 1
其中,
mymaster
是主节点名称,192.168.1.100
是主节点IP,2
表示需要至少2个哨兵同意主节点下线。 -
启动哨兵
启动哨兵服务:
redis-sentinel /path/to/sentinel.conf
确保有多个哨兵实例运行,以实现高可用。
3. Redis集群
Redis集群通过分片实现数据分布式存储和负载均衡,提高可用性和性能。集群中的每个节点都可以同时是主节点和从节点。
配置步骤
-
安装并配置Redis集群
修改每个节点的
redis.conf
文件,确保以下设置:port 6379 cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes
-
启动集群节点
启动每个集群节点:
redis-server /path/to/redis.conf
-
创建集群
使用
redis-cli
工具创建集群:redis-cli --cluster create 192.168.1.101:6379 192.168.1.102:6379 192.168.1.103:6379 192.168.1.104:6379 192.168.1.105:6379 192.168.1.106:6379 --cluster-replicas 1
这将创建一个有6个节点的集群,每个主节点有一个从节点。
负载均衡
负载均衡在高可用Redis系统中起着至关重要的作用。它可以确保流量均匀分布,避免单点过载。
1. 使用HAProxy
HAProxy是一个开源的高可用性、负载均衡和代理服务器。它可以用于Redis的负载均衡。
配置步骤
-
安装HAProxy
在Linux服务器上安装HAProxy:
sudo apt-get install haproxy
-
配置HAProxy
编辑HAProxy配置文件
/etc/haproxy/haproxy.cfg
:frontend redis_frontbind *:6379default_backend redis_backbackend redis_backmode tcpbalance roundrobinserver redis1 192.168.1.101:6379 checkserver redis2 192.168.1.102:6379 checkserver redis3 192.168.1.103:6379 checkserver redis4 192.168.1.104:6379 check
-
启动HAProxy
启动HAProxy服务:
sudo service haproxy start
2. 使用Keepalived
Keepalived用于为Redis哨兵模式或集群模式提供虚拟IP地址,实现主备切换。
配置步骤
-
安装Keepalived
在Linux服务器上安装Keepalived:
sudo apt-get install keepalived
-
配置Keepalived
编辑Keepalived配置文件
/etc/keepalived/keepalived.conf
:vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1234}virtual_ipaddress {192.168.1.200} }
-
启动Keepalived
启动Keepalived服务:
sudo service keepalived start
相关文章:
搭建高可用及负载均衡的Redis
搭建高可用及负载均衡的Redis系统是确保数据存储和访问高效且可靠的关键。本文将详细介绍如何配置高可用的Redis集群,并通过负载均衡实现性能优化。 高可用Redis架构设计 高可用性是指系统在部分组件失效时仍能继续运行。对于Redis,高可用架构通常包括…...
Hepatology | 南京鼓楼医院余德才团队:从「无药可用」到「精准打击」!肝癌脂肪代谢分型让3类患者各有生路!
文章标题:Multiomics identifies metabolic subtypes based on fatty acid degradation allocating personalized treatment in hepatocellular carcinoma 发表期刊:Hepatology 影响因子:12.9 客户单位:南京市鼓楼医院 百趣提…...
【日撸 Java 三百行】Day 11(顺序表(一))
目录 Day 11:顺序表(一) 一、关于顺序表 二、关于面向对象 三、代码模块分析 1. 顺序表的属性 2. 顺序表的方法 四、代码及测试 拓展: 小结 Day 11:顺序表(一) Task: 在《数…...
配置集群-日志聚集操作
日志聚集是指将分布式集群中各个节点上的应用程序日志收集并汇总到一个集中的位置,方便后续的查看、分析和管理。在 Hadoop 和 Spark 集群中,日志聚集是一项重要的功能,下面分别介绍如何在这两个集群中配置日志聚集操作。 Hadoop 集群日志聚…...
node版本.node版本、npm版本和pnpm版本对应
报错: ERR_PNPM_META_FETCH_FAIL GET https://registry.npmmirror.com/rollup: Value of "this" must be of type URLSearchParams node版本 Node.js — Node.js Releases node和pnpm对应关系 Installation | pnpm 参考 NVM管理node版本.node版本、…...
电商物流管理优化:从网络重构到成本管控的全链路解析
大家好,我是沛哥儿。作为电商行业,我始终认为物流是电商体验的“最后一公里”,更是成本控制的核心战场。随着行业竞争加剧,如何通过物流网络优化实现降本增效,已成为电商企业的必修课。本文将从物流网络的各个环节切入…...
Java学习手册:客户端负载均衡
一、客户端负载均衡的概念 客户端负载均衡是指在客户端应用程序中,根据一定的算法和策略,将请求分发到多个服务实例上。与服务端负载均衡不同,客户端负载均衡不需要通过专门的负载均衡设备或服务,而是直接在客户端进行请求的分发…...
E+H流量计与Profibus DP主站转Modbus RTU/TCP网关通讯
EH流量计与Profibus DP主站转Modbus RTU/TCP网关通讯 随着工业自动化的不断发展,各种不同品牌、型号的设备需要进行数据交互和通信。在实际应用中,EH流量计作为一种常用的流量测量设备,常常需要与其他设备进行连接和通信。而Profibus DP是一…...
mysql配置输入错误密码3次后锁定60s
mysql配置输入错误密码3次后锁定60s 1、安装插件 INSTALL PLUGIN CONNECTION_CONTROL SONAME connection_control.so; INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME connection_control.so; 2、验证是否安装成功 SHOW VARIABLES LIKE connection_control…...
首屏优化,webpack插件用于给html中js自动添加异步加载属性
因为要使用cheerio库,需要安装 npm安装 npm install cheerio --save-dev或使用 yarn安装 yarn add cheerio --dev创建async-script-webpack-plugin.js const cheerio require(cheerio);class AsyncScriptWebpackPlugin {constructor(options {}) {this.options …...
SQLite 数据库常见问题及解决方法
一、数据库文件锁定问题 1. 问题表现 在多线程或多进程环境下访问 SQLite 数据库时,常常会出现数据库文件被锁定的情况。当一个进程对数据库执行写操作时,其他进程的读写操作都会被阻塞,导致应用程序出现卡顿甚至无响应。比如在移动应用开发…...
day 23
机器学习管道 pipeline 一般通用pipeline的实现流程: 1.构建多个转换器(transformer),来实现对特征的预处理 2.构建 ColumnTransformer,将不同的预处理应用于不同的列子集,构造一个完备的转化器 3.构建…...
MATLAB复制Excel数据到指定区域
Matlab中如何将Excel表中的265-528行F-AA列数据复制到1-263行AE-AZ中 版本:MatlabR2018b clc; clear; %旧Excel文件名 oldFile ; %新Excel文件名 newFile ; % 工作表名称(旧表和新表一致) sheetName Sheet1; % 旧文件中待复制的数据范…...
docker配置mysql主从同步
1. 创建Docker网络 docker network create mysql-network 2. 创建数据卷 docker volume create mysql-master-volume docker volume create mysql-slave-volume 3. 准备MySQL配置文件 主库配置 (master.cnf) [mysqld] server-id1 log-binmysql-bin binlog_formatROW gtid_mo…...
机动车授权签字人备考考试题库及答案
一、单选题 13、《中华人民共和国大气污染防治法》规定,进口、销售超过污染物排放标准的机动车、非道路移动机械的,由县级以上人民政府( )按照职责没收违法所得,并处货值金额一倍以上三倍以下的罚款,没收销毁无法达到污染物排放标准的机动车、非道路移动机械。 A、生态…...
WebGL图形编程实战【6】:性能优化 × 调试工具与技巧精讲
调试工具 NVIDIA Nsight Systems NVIDIA Nsight Systems 这个工具帮助开发者深入了解应用程序在CPU、GPU 和网络通信等各个层面的运行情况,从而有效地识别性能瓶颈并进行优化 WebGL-Inspector 插件的地址在这:WebGL-Inspector chrome插件 但是在这里…...
69、微服务保姆教程(十二)容器化与云原生
容器化与云原生 在微服务架构中,容器化和云原生技术是将应用程序部署到生产环境的核心技术。通过容器化技术,可以将应用程序及其依赖项打包成一个容器镜像,确保在任何环境中都能一致运行。而云原生技术则通过自动化的容器编排系统(如 Kubernetes),实现应用的动态扩展、自…...
CSS3(BFC)
CSS3(BFC) 1、什么是BFC W3C 上对 BFC 的定义: 原文:Floats, absolutely positioned elements, block containers (such as inline-blocks, table- cells, and table-captions) that are not block boxes, and block boxes with ‘overflow’ other tha…...
OrangePi Zero 3学习笔记(Android篇)7 - ftdi_sio
目录 1. 内核配置 2. SPI设备 3. 验证 这部分需要基于之前修改的ftdi_sio驱动,增加MPSSE部分的代码。 1. 内核配置 一般默认USB转串口是关闭的,所以需要配置打开。在源代码根目录下执行: ./longan/build.sh menuconfig 菜单进入顺序&a…...
自适应蒙特卡洛定位-AMCL
自适应蒙特卡洛定位,简称AMCL,主要提供定位功能并以/tf形式输出 蒙特卡洛算法的基本思想:当所要求的问题是某种事件出现的概率或者是某个变量的期望值时,它们可以通过某种"试验"的方法,得到这种事件出现的概…...
用python清除PDF文件中的水印(Adobe Acrobat 无法删除)
学校老师发的资料,有时候会带水印,有点强迫症的都想给它去掉。用Adobe Acrobat试了下,检测不到水印,无法删除!分析发现原来这类PDF文件是用word编辑的,其中的水印是加在了页眉中! 自己动手想办法…...
bootstrap自助(抽样)法
一,概念 一言以蔽之:从训练集中有放回的均匀抽样——》本质就是有放回抽样; 自助法(bootstrap)是一种通过从数据集中重复抽样来估计统计量分布的非参数方法。它可用于构建假设检验,当对参数模型的假设存在…...
综合实验二之删除/boot目录,进行系统修复
实验三、删除/boot目录,进行系统修复 在 Linux 系统中,/boot 目录是一个至关重要的系统目录,主要用于存放系统启动时所需的核心文件和配置信息。 /boot 目录的主要作用: 存放内核文件(Kernel) vmlinuz&…...
postgresql主从集群一键搭建脚本分享
脚本1: cat pg_ms_install.sh #!/bin/bash # 基础环境配置(保持不变) setenforce 0 >/dev/null 2>&1 || true sed -i "s/SELINUXenforcing/SELINUXdisabled/" /etc/selinux/config systemctl stop firewalld >/dev/n…...
融合一致性与差异性约束的光场深度估计
摘要:光场图像深度估计是光场三维重建、目标检测、跟踪等应用中十分关键的技术。虽然光场图像的重聚焦特性为深度估计提供了非常有用的信息,但是在处理遮挡区域、边缘区域、噪声干扰等情况时,光场图像深度估计仍然存在很大的挑战。因此&#…...
转运机器人可以绕障吗?
在工业物流场景中,障碍物动态分布、路径突发拥堵是常态。传统AGV依赖固定轨道或磁条,面对复杂环境时往往“束手无策”。转运机器人可以绕障吗?富唯智能用技术创新给出答案——搭载激光SLAM导航与多传感器融合技术,其转运机器人不仅…...
【Web前端开发】CSS基础
2.CSS 2.1CSS概念 CSS是一组样式设置的规则,称为层叠样式表,用于控制页面的外观样式。 使用CSS能够对网页中元素位置的排版进行像素控制,实现美化页面的效果,也能够做到页面的样式和结构分离。 2.2基本语法 通常都是ÿ…...
【物流开单专用软件】佳易王物流管理系统:常见的物流信息系统以及软件程序实操教程 #物流软件定制#物流软件开发#物流软件推荐
一、概述 软件试用版资源文件下载方法: 【进入头像主页第一篇文章最后 卡片按钮 可点击了解详细资料 或左上角本博客主页 右侧按钮了解具体资料信息】 本实例以 佳易王物流管理系统 为例说明,其他版本可参考本实例。试用版软件资源可到文章最…...
力扣-94.二叉树的中序遍历
题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 class Solution { public:void inorder(TreeNode* root, vector<int>& res){//C这里&一定要加if(!root)return;inorder(root->left,res);res.push_back(root->val);inorder(ro…...
对基于再生龙制作的Linux系统的硬盘进行扩容
背景 公司一个仪器产品是基于x86核心板开发的,因此制作系统镜像时用的再生龙软件,好处是制作的系统镜像比ARM平台那种raw image小很多,缺点是操作有点麻烦。 最近客户反馈512GB的SSD硬盘容量不够,因此公司决定升级成1TB的&#x…...
Spring Boot 注解详细解析:解锁高效开发的密钥
一、引言 Spring Boot 以其快速开发、自动配置等特性,成为构建 Java 应用程序的热门框架。而注解在 Spring Boot 中扮演着至关重要的角色,它们如同魔法指令,简化了配置流程,增强了代码的可读性与可维护性。本文将深入剖析 Spring…...
【速写】KV-cache与解码的再探讨(以束搜索实现为例)
文章目录 1 Beam Search 解码算法实现2 实现带KV Cache的Beam Search解码3 关于在带kv-cache的情况下的use_cache参数 1 Beam Search 解码算法实现 下面是一个使用PyTorch实现的beam search解码算法: 几个小细节: 束搜索可以加入length_penalty&#…...
ElasticSearch聚合操作案例
1、根据color分组统计销售数量 只执行聚合分组,不做复杂的聚合统计。在ES中最基础的聚合为terms,相当于 SQL中的count。 在ES中默认为分组数据做排序,使用的是doc_count数据执行降序排列。可以使用 _key元数据,根据分组后的字段数…...
微信小程序单双周选择排序有效果图
效果图 .wxml <view class"group-box"><label class"radio" wx:for"{{[单周,双周,全选]}}" wx:key"index" bind:tap"radioChange"data-index"{{index}}"><radio checked"{{index zcTem.ind…...
保持Word中插入图片的清晰度
大家有没有遇到这个问题,原本绘制的高清晰度图片,插入word后就变模糊了。先说原因,word默认启动了自动压缩图片功能,分享一下如何关闭这项功能,保持Word中插入图片的清晰度。 ①在Word文档中,点击左上角的…...
Matlab 基于GUI的汽车巡航模糊pid控制
1、内容简介 Matlab 225-基于GUI的汽车巡航模糊pid控制 可以交流、咨询、答疑 2、内容说明 略 依据比例—积分—微分控制的基本原理,我们利用MATLAB软件中SMULINK建立一个简单的PID控制器模型,利用这个模型在模糊控制过程中对PID控制参数进行在线的实时…...
(网络)应用层协议-HTTPS
1.HTTPS是什么? HTTPS是应用层的一种协议,是在HTTP的基础上进行了加密层的处理。 HTTP协议的内容都是按照文本的形式进行传输的,所以呢就很容易被别人知道传输的是什么。 我们在了解了TCP/IP之后是知道我们的数据在传输的过程中是通过路由器进…...
Browserless 快速上手
要将你提供的 HTML 模板和数据结构转换为可以用于 Browserless /pdf 接口的 JSON 请求体(且能正确渲染为 PDF),需要满足以下几点: ✅ 最终目标格式(这是能用的格式): json 复制编辑 { "h…...
JWT的介绍与在Fastapi框架中的应用
什么是JWT JWT (JSON Web Token) 是一个开放标准 ( RFC 7519 ),它定义了一种紧凑且自包含的方式,用于在各方之间安全地以 JSON 对象的形式传输信息。由于这些信息经过数字签名,因此可以被验证和信任。JWT 可以使用密钥(采用HMAC算…...
Html5新特性_js 给元素自定义属性_json 详解_浅克隆与深克隆
文章目录 1. html5新特性2.用 js 给元素自定义属性3.json3.1 json与普通对象的区别3.2 json对象与 js对象的转化 4.浅克隆和深克隆 1. html5新特性 html5中引入了新的特性(新的标签),下面的新标签是新的结构标签,不过不太常用 h…...
一般纯软工程学习路径
基础 阶段一:基本熟悉工具链代码托管流程和配置 代码托管基本 1. 成见和管理代码库(组) 2. 成员配置和权限配置 代码迁移 1. 手工迁移 2. 脚本自动化迁移 代码提交 1. SSH key配置 2. 代码提交commit message 管理需求单 MR合并请求 1. 合并请…...
ES6基础特性
1.定时器 ——延时定时器 setTimeout(function()>{ },2000) ——间隔执行定时器 setInterval(function()>{ },2000) *定时器方法都返回唯一标识编号id&…...
SSTI记录
SSTI(Server-Side Template Injection,服务器段模板注入) 当前使用的一些框架,如python的flask、php的tp、java的spring,都采用成熟的MVC模式,用户的输入会先进入到Controller控制器,然后根据请求的类型和请求的指令发…...
Go语言爬虫系列教程(一) 爬虫基础入门
Go爬虫基础入门 1. 网络爬虫概念介绍 1.1 什么是网络爬虫 网络爬虫(Web Crawler),又称网页蜘蛛、网络机器人,是一种按照一定规则自动抓取互联网信息的程序或脚本。其核心功能是模拟人类浏览网页的行为,通过发送网络…...
c/c++爬虫总结
GitHub 开源 C/C 网页爬虫探究:协议、实现与测试 网页爬虫,作为一种自动化获取网络信息的强大工具,在搜索引擎、数据挖掘、市场分析等领域扮演着至关重要的角色。对于希望深入理解网络工作原理和数据提取技术的 C/C 开发者,尤其是…...
【HarmonyOS 5】鸿蒙碰一碰分享功能开发指南
【HarmonyOS 5】鸿蒙碰一碰分享功能开发指南 一、前言 碰一碰分享的定义 在 HarmonyOS NEXT 系统中,华为分享推出的碰一碰分享功能,为用户带来了便捷高效的跨端分享体验。开发者通过简单的代码实现,就能调用系统 API 拉起分享卡片模板&…...
vue H5解决安卓手机软键盘弹出,页面高度被顶起
开发中安卓机上遇到的软键盘弹出导致布局问题 直接上代码_ 在这里插入代码片 <div class"container"><div class"appContainer" :style"{height:isKeyboardOpen? Heights :inherit}"><p class"name"><!-- 绑定…...
【pypi镜像源】使用devpi实现python镜像源代理(缓存加速,私有仓库,版本控制)
【pypi镜像源】使用devpi实现python镜像源代理(缓存加速,私有仓库,版本控制) 文章目录 1、背景与目标2、devpi-server 服务端搭建3、devpi 镜像源使用 1、背景与目标 背景1(访问速度优化): 直…...
Spring Bean有哪几种配置方式?
大家好,我是锋哥。今天分享关于【Spring Bean有哪几种配置方式?】面试题。希望对大家有帮助; Spring Bean有哪几种配置方式? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 Spring Bean的配置方式主要有三种ÿ…...
无人机信号线被电磁干扰导致停机
问题描述: 无人机飞控和电调之间使用PWM信号控制时候,无人机可以正常起飞,但是在空中悬停的时候会出现某一个电机停机,经排查电调没有启动过流过压等保护,定位到电调和飞控之间的信号线被干扰问题。 信号线被干扰&am…...