首页 > 数据库 >Docker 下 RedisCluster 分片集群搭建

Docker 下 RedisCluster 分片集群搭建

时间:2023-04-05 14:44:57浏览次数:41  
标签:redis RedisCluster Cluster 集群 分片 master Docker 节点

1. Cluster 分片集群 1.1 Cluster 集群的结构和作用   redis 哨兵模式虽然提供了 redis⾼可⽤、高并发读的解决方案,但是在海量数据应用场景下,仍然存在海量数据存储问题和高并发写的问题。当只有⼀个 Master 对外提供服务时,如果数据量特别⼤,内存占⽤问题严重,数据的高并发写、数据备份和恢复都会⼤⼤降低效率。   针对这些问题,redis 推出 Cluster 集群架构,该结构具有如下特点: (1)Redis Cluster 采用的是基于 P2P 的去中心化的网络拓扑架构,没有中心节点,所有节点既是数据存储节点,也是控制节点; (2)引入槽(slot)的概念,通过 CRC+hashslot 算法支持多个主节点(分片),每个主节点分别负责存储一部分数据,这样理论上可以支持无限主节点的水平扩容以便支持海量吞吐量; (3)内置类似哨兵的高可用机制,能够实现自动故障转移,保证每个主节点的高可用。   因此,redis Cluster 集群也叫分片集群,具有分片存储的特性,不需要哨兵也可以完成故障转移的功能,具有⾼可⽤性,性能优于哨兵模式,可实现⾃动扩容(官⽅建议不要超过 1000 个节点)。   1.2 Cluster 分片集群的作用 Cluster 分片集群的作用如下: (1)集群中有多个 master,每个 master 保存不同数据; (2)每个 master 都可以有多个 slave 节点; (3)master 之间通过 ping 监测彼此健康状态; (4)客户端请求可以访问集群任意节点,最终都会被转发到正确节点。   1.3 哈希槽(hash slot) 1.3.1 插槽原理   在 Cluster 集群里设置了 16384 个哈希槽(hash slot),每个 redis 节点负责管理一部分槽的读写操作。Redis 会把每一个 master 节点映射到 0~16383 共 16384 个插槽(hash slot)上。当在 master 节点上写键值对数据时,redis 先对每个键(key),用CRC16 算法对 key 进行运算,然后用 16384 对运算结果取模,余数作为插槽,寻找插槽所在实例即可,就把这个 key 放入相应编号的哈希槽中。   此外,cluster 集群也支持主从复制模式,每个主节点可以携带一个或多个从节点。  

标签:redis,RedisCluster,Cluster,集群,分片,master,Docker,节点
From: https://www.cnblogs.com/qiqi-yi/p/17289409.html

相关文章

  • Docker 网络
    1.Docker网络1.1Docker网络模式使用Docker时,宿主机和容器内系统、容器和容器之间都需要网络连接,必须要考虑容器和宿主机、容器和容器之间的网络连接方式,因此了解docker的网络模式对正确使用docker非常重要。Docker启动后,它默认会创建三个网络,使用docker......
  • Docker
    Docker1Docker简介1.1什么是虚拟化​ 在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新......
  • Docker
    env华为云HECSUbuntu22.04server64bit#安装sudoapt-getinstalldocker-cedocker-ce-clicontainerd.iodocker-buildx-plugindocker-compose-plugin#启动sudoservicedockerstart#测试sudodockerrunhello-world查版本dockerversion查信息:dockerin......
  • Docker 如何开发容器
    Docker基本使用Docker的核心价值在于虚拟化或者说环境隔离【通过虚拟化技术实现虚拟环境】,解决环境配置和部署的依赖问题实现解耦我对虚拟化的理解源自《OperatingSystems:ThreeEasyPieces》,推荐阅读容器技术相关历史推荐知乎上的这篇文章:容器技术的历史Docker基本概......
  • Docker 下 Redis 数据库的持久化
    1、Docker容器的数据卷Docker是将系统与运行的环境打包成容器来运行,当容器删除后,容器里的系统自然也就没有了。但是,在实际的项目中,希望Docker容器产生的数据能够持久化,同时容器之间也能够共享数据。Docker提供了数据卷技术来实现这些需求。数据卷就是目录或文件,存......
  • centos快速的安装和卸载docker
    在centos系统上快速安装docker-ce,废话不多说,直接上shell代码,适配与所有centos和ali-cloud系统: #安装依赖包yuminstall-yyum-utilsdevice-mapper-persistent-datalvm2 #添加Docker软件包源,我们这里配置了阿里云的镜像源yum-config-manager......
  • 性能环境之Jenkins+Maven自动化部署SpringBoot压测环境(Docker篇)
    前言在上文性能环境之Jenkins+Maven自动化部署SpringBoot压测环境(实战篇)中我们介绍了常规部署流程,本文将在上文的基础上扩展Jenkins+Maven+Docker自动化部署我们的压测环境。关于DockerDocker在这里有什么用?Docker,是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到......
  • Docker
    1、Docker概念• Docker是一个开源的应用容器引擎• 诞生于2013年初,基于Go语言实现,dotCloud公司出品(后改名为DockerInc)•Docker可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上。•容器是完全使用沙箱机制,......
  • Windows 下 Docker 的安装
    1、安装条件(1)64位Windows10及以上操作系统(2)已经开启了BIOS设置中的硬件虚拟化支持,如没有开启,在BIOS中设置。 2、下载DockerDesktopInstaller.exe安装包(1)官网:https://www.docker.com/访问官网页面,并单击其中的DownloadDockerDesktopforWindows按钮......
  • docker run 参数详解
    命令格式:dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]Usage:Runacommandinanewcontainer中文意思为:通过run命令创建一个新的容器(container)常用选项说明-d,--detach=false,指定容器运行于前台还是后台,默认为false-i,--interactive=false,打开STDIN,用于控制台交互-t,-......