Java学习 - Redis-Cluster

news2024/11/26 4:49:57

为什么需要集群

  • 为了高的处理速度
    • 单机redis,官网宣传处理速度为10万命令/秒
    • 如果业务需要更高的处理速度,则需要使用集群
  • 为了存储大量数据
    • 一般机器的内存为16-256G
    • 如果想要存储更大量的数据,则需要使用集群

分布式之数据分区

  • 因为数据需要分布存储在不同的节点上,所以数据在进行存储之前需要先分区

  • 数据分区示意图
    在这里插入图片描述

  • 数据分区方法

    分区方式特点典型产品
    顺序分区数据分散有倾斜(某些节点有过多热门数据)
    可以顺序访问
    键与业务有关
    BigTabl
    HBase
    哈希分区数据分布无倾斜
    不能顺序访问
    键与业务无关(由哈希函数生成)
    Redis Cluster
    Memcache
  • 哈希分区的三种方法

    • 节点取分区余法

      • 原理:数据所属节点 = Hash(key) % 节点数
      • 优点:原理简单,实现简单
      • 缺点:在进行节点伸缩过程中,可能会发生大量的数据迁移,且缓存会失效
      • 经验:进行节点伸缩时,最好是以倍数进行扩容或缩减
    • 一致性哈希分区法

      • 原理:先定义Hash的取值范围,令它组成一个环,集群中每个节点负责一区间的Hash值,当一个数据加入集群时,让它加入哈希值按顺时针最近的节点

        在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

* 优点:节点伸缩只会影响最近邻近节点

* 缺点:还是具有数据迁移
  • 虚拟槽分区法

    • 原理:预设虚拟槽,每个槽映射一个数据子集,一般比节点数大

      在这里插入图片描述

    • 优点:不会发生数迁移

    • 经验:redis-cluster使用的数据分区算法是虚拟槽分区法

redis-cluster架构

架构图
  • 节点之间相互通信,客户端随机连接一个节点

在这里插入图片描述

  • 集群中节点共享信息
  • 当客户端访问一个节点拿数据时
    • 数据就在访问节点:直接返回数据给客户端
    • 数据在其他节点:返回信息告诉客户端去哪个节点拿数据(不帮忙拿,只是告诉去哪里拿)
  • 集群中节点是高可用的,但不是依靠sentinel实现的,而是依靠节点之间通信实现的
节点配置
配置项配置说明
daemonize yes|no是否以守护线程方式启动
port端口
dir工作目录
logfile日志文件名
dbfilenameRDB文件名
cluster-enabled yes|no是否构建集群
cluster-config-file集群日志文件名
cluster-require-full-coverage yes|no是否只有当所有节点都可用时,集群才可用
meet操作
  • 概念:当一个节点A与节点B连接时,由于节点数据共享,所以节点B可以自动连接上与节点A进行连接的节点

    在这里插入图片描述

  • 命令

    • redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7001
指派槽
  • 概念:让某个节点负责某个区间哈希值的槽

    节点
    A0 ~ 5460
    B5461 ~ 10922
    C10923 ~ 16383
  • 经验:当集群中未分配完所有的槽(16383)时,节点是不可用的

主从复制
客户端命令
  • 查看当前节点的信息
    • redis-cli -h 127.0.0.1 -p 7000 cluster info
  • 查看当前节点连接了多个其他节点
    • redis-cli -h 127.0.0.1 -p 7000 cluster nodes

官方工具安装

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

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

相关文章

不要小看3D元素,融入大屏后,立马带来5个提升。

将3D元素引入可视化大屏可以带来多方面的好处,包括但不限于以下几点: 1. 更生动的展示效果: 通过引入3D元素,可视化大屏可以呈现更加生动、立体的展示效果,使得数据和信息更加直观、形象化,吸引观众的注意…

餐饮冷库安全守护神:可燃气体报警器检定的科学性与有效性

随着餐饮业的快速发展,冷库成为储存食材、保证食品质量的重要场所。 然而,由于冷库环境的特殊性,如密封性强、温度低、湿度大等,一旦冷库内发生可燃气体泄露,后果将不堪设想。因此,在餐饮冷库中安装并合理…

解决RuntimeError: Unsupported image type, must be 8bit gray or RGB image.

今天在使用Opencv进行人脸识别项目时发现了一个问题,一直报这个错误RuntimeError: Unsupported image type, must be 8bit gray or RGB image.查了一下资料也是解决了,这样给大家分享一下 解决方案 Numpy 有一个主要版本更新,与 dlib 不兼容。…

Kubernetes实现应用零宕机

Kubernetes实现应用零宕机 容器镜像位置Pod数量(应用程序实例)Pod中断预算部署策略自动回滚部署Probe探针初始启动时间延迟优雅终止期GrancePeriodSecondsPod反亲和力资源自动缩放Autoscaling总结 容器已经彻底改变了应用托管格局!它带来了许多需要复杂设置的设施。…

嵌入式Linux系统编程 — 4.2 sizeof 和 strlen 的作用和区别

目录 1 strlen函数 2 sizeof函数 3 sizeof 和 strlen 的作用和区别(面试必问) 3.1 作用 3.2 主要区别 1 strlen函数 strlen() 函数是 C 语言标准库中的一个函数,用于计算字符串的长度。它不包括字符串末尾的空字符(\0&#…

原、反、补码之间的相互转换以及计算机硬件实现有符号数、无符号数、定点小数、定点整数的加减法运算

目录 原、反、补码之间的相互转换 无符号整数的加减运算 无符号整数的加法运算 无符号整数的减法运算 有符号整数的加减运算 有符号整数补码的加法运算 有符号整数补码的减法运算 定点小数的加减运算 定点小数补码的加法运算 定点小数补码的减法运算 定点小数VS定点整…

CSS|05 继承性与优先级

继承性 一、继承性的特点: 1.外层元素身上的样式会被内层元素所继承 2.如果内层元素与外层元素身上的演示相同时,外层元素的样式会被内层元素所覆盖 二、关于继承性的问题 是不是所有样式都能被继承? 答:并不是所有样式能被继承…

1991java Web体检预约管理系统eclipse定制开发mysql数据库BS模式java编程jdbc

一、源码特点 JSP体检预约管理系统是一套完善的web设计系统,对理解JSP java 编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,eclipse开发,数据库为Mysql5.0,使用…

Unity3D Text使用超链接跳转事件

系列文章目录 Unity工具 文章目录 系列文章目录👉前言👉一、第一种使用TextMeshPro加入超链接👉二、继承Text组件,重载OnPopulateMesh方法👉三.壁纸分享👉总结 👉前言 有时候会用到跳转的问题,所以添加一…

详细分析Oracle修改默认的时间格式(四种方式)

目录 前言1. 会话级别2. 系统级别3. 环境配置4. 函数格式化5. 总结 前言 默认的日期和时间格式由参数NLS_DATE_FORMAT控制 如果需要修改默认的时间格式,可以通过修改会话级别或系统级别的参数来实现 1. 会话级别 在当前会话中设置日期格式,这只会影响…

【UE开发】游戏库存UI系统Demo

1.项目介绍 1.描述:一种用于存储记录玩家物品的游戏内可视化操作系统。 2.演示:https://www.bilibili.com/video/BV1f53neVEfW/?vd_source50dea901fd12253f417c48b937975b0d 3.大纲: 4.样式: 2.W_Inventory_Main_01(…

云效BizDevOps上手亲测

云效BizDevOps上手亲测 什么是云效项目协作Projex配置2023业务空间原始诉求字段原始诉求工作流创建原始诉求配置2023产品空间创建主题业务原始诉求关联主题配置2023研发空间新建需求需求关联主题 与传统区别云效开发流程传统开发流程云效BizDevOps 操作体验 什么是云效 在说到…

java+mysql图书管理系统

完整代码地址 1.运行效果图 2.主要代码 2.1.连接数据库 package com.my.homework.utils;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException;public class JDBCUtils {public static Connection getConnection() throws Exception {…

安装containerd

containerd文档地址 containerd介绍 早在2016年3月,Docker 1.11的Docker Engine里就包合了containerd,而现在则是把containerd从Docker Engine里彻底剥离出来, 为一个独立的开源项目独立发展,目标是提供一个更加开放、稳定的容器…

使用FRP 0.58版本进行内网穿透的详细教程

什么是FRP? FRP(Fast Reverse Proxy)是一款高性能的反向代理应用,主要用于内网穿透。通过FRP,您可以将内网服务暴露给外网用户,无需进行复杂的网络配置。 准备工作 服务器:一台具备公网IP的服…

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第49课-机器人自动跳舞

【WEB前端2024】3D智体编程:乔布斯3D纪念馆-第49课-机器人自动跳舞 使用dtns.network德塔世界(开源的智体世界引擎),策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…

谷歌发布两款新Gemma 2大语言模型;阿里云开源Qwen2-72B模型荣登榜首

🦉 AI新闻 🚀 谷歌发布两款新Gemma 2大语言模型 摘要:谷歌发布Gemma 2大语言模型,包括90亿和270亿参数两种版本。Gemma 2在推理性能、效率和安全性上较第一代有显著提升。27B模型的性能媲美更大规模的主流模型,且部署…

提升自来水公司经济效益的策略研究

现阶段,如何提高自来水公司经济效益的问题已经得到社会的广泛关注。文章将立足于成本管理的角度,在对自来水公司生产现状分析的基础上,总结影响自来水公司经济效益的相关因素,最后从成本管理的角度出发,对如何提高自来…

Hadoop-01-基础环境搭建 超详细 Hadoop Java 环境变量 3节点云服务器 2C4G XML 集群配置 HDFS Yarn MapRedece

背景介绍 这里是三台公网云服务器,每台 2C4G,搭建一个Hadoop的学习环境,供我学习。 之前已经在 VM 虚拟机上搭建过一次,但是没留下笔记,这次趁着前几天薅羊毛的3台机器,赶紧尝试在公网上搭建体验一下。 注…

huggingface加速下载模型

文章目录 所需环境huggingface-cli 用法登录token 获取 huggingface 镜像huggingface 缓存hf-transfer 拉满下载带宽如果开了的话,记得关掉科学上网!!! 所需环境 python huggingface-cli 用法 huggingface-cli的更多用法点击这…