Redis_分片集群
10. 分片集群
10.1简介
业务场景,需要存储50G的数据。对于内存和硬盘配置不足,选用两种方式
- 一种:纵向扩展:加内存,加硬盘,提高CPU。简单、直接。RDB存储效率要考虑。成本要考虑。
- 二种:横向扩展:加实例。(加机器)
10.2配置
步骤1:
- 创建一个mycluster目录,复制redis.conf文件
mkdir mycluster cp /opt/redis-6.2.6/redis.conf redis.conf
- 将后台启动打开
步骤2:
- 创建一个redis6379.conf
include redis.conf pidfile "/var/run/redis_6379.pid" port 6379 dbfilename "dump6379.rdb" #打开集群模式 cluster-enabled yes #设定节点配置文件 cluster-config-file nodes-6379.conf #设定节点失联时间,超过,会自动进行主从切换 cluster-node-timeout 15000
步骤3:
- 根据6379的配置文件,再配置5个不同的端口
:%S/原内容/要替换的内容 :%s/6379/6380
步骤4:
-
修改redis.conf配置文件,将bind ip地址加入
打开bind 127.0.0.1 加入 192.168.188.3
步骤5
- 启动六个服务,保证六个服务启动成功
步骤6
- 将六个服务合成一个集群
redis-cli --cluster create --cluster-replicas 1 192.168.188.3:6379 192.168.188.3:6380 192.168.188.3:6381 192.168.188.3:6579 192.168.188.3:6580 192.168.188.3:6581
- 输入yes去接受配置
注意:
当出现此错误时,需要把redis.conf配置文件中的protected-mode no
yes改为no,重启所有redis在执行步骤6
10.3 Hash Slot
10.3.1 简介
在使用redis cluster方案中,一个分片集群有16384个哈希槽。
根据键值对的key,按照CRC16算法计算一个16bit的值。再用这个值对16384取模运算,得到的数代表对应编号的hash slot
10.3.2部署方案
cluster create命令创建集群时,redis会自动把这些hash slot平均分布在集群实例上。如果集群中有N个实例(主库),每个实例上分配到的hash slot就是16384/N
使用cluster addslos 手工分配哈希槽。
10.4 集群中的数据操作
步骤1
- 使用集群方式启动redis的命令行,加 -c参数
redis-cli -c -p 6379
步骤2
- 向redis中设置一个键值对,key会经过运算后,得到相应的hash slot进行存储
set k1 v1 set k2 v2 get k1 get k2
步骤3
- 测试向集群中加入多个key-value,由于在不同的hash slot,此时会报错
mset k3 v3 k4 v4 k5 v5
- 要通过{}来定义组的概念,使用key中{}内相同内容的键值对放在一个slot中
mset name{user:001} zhangsan age{user:001} 18 gender{user:001} man
步骤4
- 获取key中的值
get k1 get name{user:001}
10.5 常用命令
- cluster nodes:显示集群节点的配置信息
- cluster keyslot < key>:获取key的哈希槽
- cluster countkeysinslot < slot>:返回当前哈希槽中key的数量(仅查询当前redis实例)
- cluster getkeysinslot < slot>< count>:返回当前槽中指定的count数量的key
10.6 故障演示
步骤1
- 将6379宕机,以集群方式登录6380
127.0.0.1:6379>shutdown exit redis-cli -c -p 6380
步骤2:
- 使用cluster nodes查看节点状态,6379的从机6581变成了主机
步骤3:
- 把6379再次启动,启动后,6379变成了6581的从机
如果有一段hash slot的主从节点都宕机,redis是否继续工作?
通过下面配置,默认是yes,如果主从都挂掉,整个集群就都挂掉
如果是no,就表示该hash slot数据全部都不能使用,也无法存储
cluster-require-full-coverage yes
相关文章:

Redis_分片集群
10. 分片集群 10.1简介 业务场景,需要存储50G的数据。对于内存和硬盘配置不足,选用两种方式 一种:纵向扩展:加内存,加硬盘,提高CPU。简单、直接。RDB存储效率要考虑。成本要考虑。二种:横向扩…...
测试提升方向:你选测试开发?还是性能测试?
如果想要在测试领域好好发展,提升自己的测试技术是必不可少的,但是,选对方向更为重要,功能测试、自动化测试、测试开发、性能测试、安全测试、测试管理,每个测试方向都不简单,但是,大环境就是&a…...

无涯教程-Perl - print函数
描述 此函数将LIST中的表达式的值打印到当前的默认输出文件句柄或FILEHANDLE指定的句柄中。 如果设置,则$\变量将添加到LIST的末尾。 如果LIST为空,则打印$_中的值。 print接受一个值列表,列表中的每个元素都将被解释为一个表达式。 语法 以下是此函数的简单语法- print…...
python搜索文件夹内类似的文件名
# codingutf8 __author__ Administrator import os """ #编写函数,计算字符串匹配的准确率 def Rate(origin,userInput): if not (isinstance(origin,str) and isinstance(userInput,str)): print(The two parameters must be strings…...

[保研/考研机试] KY3 约数的个数 清华大学复试上机题 C++实现
题目链接: KY3 约数的个数 https://www.nowcoder.com/share/jump/437195121691716950188 描述 输入n个整数,依次输出每个数的约数的个数 输入描述: 输入的第一行为N,即数组的个数(N<1000) 接下来的1行包括N个整数,其中每个…...
cmake扩展(2)——windows下动态设置输出文件(dll/exe)版本
准备 windows下设置文件的版本需要通过VERSIONINFO接口,详情参考VERSIONINFO resource。这里我们根据模板做了一定的修改。 1 VERSIONINFOFILEVERSION ${GIT_VERSION} //文件版本号,必填。以,分隔,输出以.分隔。这里是取CMakeLists里的GIT_…...

Python-OpenCV中的图像处理-颜色空间转换
Python-OpenCV中的图像处理-颜色空间转换 颜色空间转换获取HSV的值 颜色空间转换 在 OpenCV 中有超过 150 中进行颜色空间转换的方法。但是你以后就会 发现我们经常用到的也就两种: BGR G r a y 和 B G R Gray 和 BGR Gray和BGRHSV。 注意:在 OpenCV 的…...

yolov5目标检测多线程Qt界面
上一篇文章:yolov5目标检测多线程C部署 V1 基本功能实现 mainwindow.h #pragma once#include <iostream>#include <QMainWindow> #include <QFileDialog> #include <QThread>#include <opencv2/opencv.hpp>#include "yolov5.…...

[ubuntu]创建root权限的用户 该用户登录后自动切换为root用户
一、创建新用户 1、创建新用户 sudo useradd -r -m -s /bin/bash 用户名 # -r:建立系统账号 -m:自动建立用户的登入目录 -s:指定用户登入后所使用的shell2、手动为用户设置密码 passwd 用户名 二、为用户增加root权限 1、添加写权限 ch…...

大连交通大学813软件工程考研习题
1.什么是软件生存周期模型?有哪些主要模型? 生存周期模型:描述软件开发过程中各种活动如何执行的模型。对软件开发提供强有力的支持,为开发过程中的活动提供统一的政策保证,为参与开发的人员提供帮助和指导,是软件生存周期模型…...

分布式协议与算法——Paxos算法
目录 Paxos算法Basic Paxos算法三种角色如何达成共识(协商过程)小结: Multi-Paxos算法关于 Multi-Paxos 的思考领导者优化Basic PaxosChubby 的 Multi-Paxos 实现小结 参考 Paxos算法 Paxos论文 Paxos Made Simple 、author:Lesli…...
Spring中的Websocket身份验证和授权
目录 一、需要了解的事项二、依赖三、WebSocket 配置3.1 、简单的消息代理3.2 、Spring安全配置 一、需要了解的事项 http和WebSocket的安全链和安全配置是完全独立的。SpringAuthenticationProvider根本不参与 Websocket 身份验证。将要给出的示例中,身份验证不会…...

【果树农药喷洒机器人】Part7:静态PWM变量喷药实验
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...

C++ 网络编程项目fastDFS分布是文件系统(一)
目录 1.项目架构图 1. 项目架构图 1.1 一些概念 1.2 项目架构图 2. 分布式文件系统 2.1 传统文件系统 2.2 分布式文件系统 3. FastDFS 3.1 fastDFS介绍 3.2 fastDFS安装 3.3 fastDFS配置文件 3.4 fastDFS的启动 4. fastDFS状态检测 4.1 对file_id的解释 4. 2上传…...

PoseiSwap 开启“Poseidon”池,治理体系或将全面开启
PoseiSwap 曾在前不久分别以 IDO、IEO 的方式推出了 POSE 通证,但 PoseiSwap DEX 中并未向除 Zepoch 节点外的角色开放 POSE 资产的交易。而在前不久,PoseiSwap 推出了全新的“Poseidon”池,该池将向所有用户开放,并允许用户自由的…...
【C/C++】重载运算符特性
重载运算符是 C 中的一个重要特性,它允许程序员自定义类类型的运算符行为。重载运算符的使用场景包括: 使类类型的对象能够像内置类型一样进行运算:例如,可以重载加号运算符,使两个对象相加时能够像两个整数相加一样。…...

HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
公文一键排版系统基本完成,准备继续完善SysInfo,增加用户帐户信息,其中涉及到Win32_Account结构,其C定义如下: [Dynamic, Provider("CIMWin32"), UUID("{8502C4CC-5FBB-11D2-AAC1-006008C78BC7}"…...

24届近3年南京信息工程大学自动化考研院校分析
今天给大家带来的是南京信息工程大学控制考研分析 满满干货~还不快快点赞收藏 一、南京信息工程大学 学校简介 南京信息工程大学位于南京江北新区,是一所以大气科学为特色的全国重点大学,由江苏省人民政府、中华人民共和国教育部、中国气…...

【LeetCode】1572.矩阵对角线元素的和
题目 给你一个正方形矩阵 mat,请你返回矩阵对角线元素的和。 请你返回在矩阵主对角线上的元素和副对角线上且不在主对角线上元素的和。 示例 1: 输入:mat [[1,2,3],[4,5,6],[7,8,9]] 输出:25 解释:对角线的和为&a…...

2023-08-08 Ubuntu 挂载U盘 fdisk -l 、sudo mount /dev/sdb1 /mnt/mydisk
一、基本命令 1、插入U盘,查看U盘是否被系统识别: 打开终端,输入: sudo fdisk -l 查看系统是否识别U盘,如果识别,会显示U盘的相关信息,如果没有识别,则说明系统没有识别U盘。 2…...

数据库系统概论(十七)超详细讲解数据库规范化与五大范式(从函数依赖到多值依赖,再到五大范式,附带例题,表格,知识图谱对比带你一步步掌握)
数据库系统概论(十七)超详细讲解数据库规范化与五大范式(从函数依赖到多值依赖,再到五大范式,附带例题,表格,知识图谱对比带你一步步掌握) 前言一、为什么需要规范化1. 我们先想一个…...
[论文阅读] 人工智能 | 搜索增强LLMs的用户偏好与性能分析
【论文解读】Search Arena:搜索增强LLMs的用户偏好与性能分析 论文信息 作者: Mihran Miroyan, Tsung-Han Wu, Logan King等 标题: Search Arena: Analyzing Search-Augmented LLMs 来源: arXiv preprint arXiv:2506.05334v1, 2025 一、研究背景:…...

在SpringBoot中使用AWS SDK实现邮箱验证码服务
1.依赖导入(maven) <dependency><groupId>software.amazon.awssdk</groupId><artifactId>ses</artifactId><version>2.31.46</version></dependency> 2.申请两个key 发件人邮箱需要验证: …...

Python60日基础学习打卡Day45
之前的神经网络训练中,为了帮助理解借用了很多的组件,比如训练进度条、可视化的loss下降曲线、权重分布图,运行结束后还可以查看单张图的推理效果。 如果现在有一个交互工具可以很简单的通过按钮完成这些辅助功能那就好了,他就是…...
ajax学习手册
Ajax 通俗易懂学习手册 目录 Ajax 基础概念XMLHttpRequest 详解Fetch API (现代方式)处理不同数据格式错误处理和状态码Ajax 高级技巧实战项目案例最佳实践 Ajax 基础概念 什么是 Ajax? Ajax Asynchronous JavaScript And XML 通俗解释: Ajax 就像…...
基于 COM 的 XML 解析技术(MSXML) 的总结
✅ 一、COM 与 MSXML 简要说明 🔷 什么是 COM? COM(Component Object Model)是一种 Windows 平台下的组件技术,可以实现在不重新编译代码的前提下复用组件。 特点: 用 接口调用方式 解耦依赖;…...

微服务网关SpringCloudGateway+SaToken鉴权
目录 概念 前置知识回顾 拿到UserInfo 用于自定义权限和角色的获取逻辑 最后进行要进行 satoken 过滤器全局配置 概念 做权限认证的时候 我们首先要明确两点 我们需要的角色有几种 我们需要的权限有几种 角色 分两种 ADMIN 管理员 :可管理商品 CUSTIOMER 普通…...

基于LLaMA-Factory和Easy Dataset的Qwen3微调实战:从数据准备到LoRA微调推理评估的全流程指南
随着开源大模型如 LLaMA、Qwen 和 Baichuan 的广泛应用,其基于通用数据的训练方式在特定下游任务和垂直领域中的表现仍存在提升空间,因此衍生出针对具体场景的微调训练需求。这些训练涵盖预训练(PT)、指令微调(SFT&…...
深入理解数字音频:采样率、位深与量化
在当今数字时代,音频技术已经渗透到我们生活的方方面面——从流媒体音乐到视频会议,从播客到智能家居。但你是否曾好奇过,这些美妙的声音是如何被捕捉、存储并在数字世界中重现的?本文将带你深入了解数字音频的核心概念࿰…...

基于本地LLM与MCP架构构建AI智能体全指南
一、AI智能体开发的新范式 随着人工智能技术的快速演进,AI智能体(AI Agents)正成为连接技术创新与实际应用的核心载体。从智能家居的温控系统到复杂的金融风控决策,AI智能体通过感知环境并执行目标导向的行为,正在重塑…...