iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Redis中的Cluster集群介绍
  • 703
分享到

Redis中的Cluster集群介绍

2024-04-02 19:04:59 703人浏览 薄情痞子
摘要

这篇文章主要介绍“Redis中的Cluster集群介绍”,在日常操作中,相信很多人在Redis中的Cluster集群介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redi

这篇文章主要介绍“Redis中的Cluster集群介绍”,在日常操作中,相信很多人在Redis中的Cluster集群介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis中的Cluster集群介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

Redis Cluster (Redis集群)

Redis Cluster是Redis的分布式实现。 当我们传输数据到 Redis Cluster,数据会自动分片,存储到各个Redis节点上。

Redis Cluster相对于单点Redis,可以在一些节点出现故障或无法通信时继续运行。但是,如果服务器出现较大故障(例如,超过一半以上的服务器不可用),群集将停止运行。

Redis Cluster TCP端口

每个Redis群集节点都需要打开两个tcp连接。 一是用于服务客户端的常规TCP端口,默认为6379。 第二个端口用于群集总线,默认设置16379,二进制协议的节点到节点通信通道。节点利用群集总线用于故障检测,配置更新,故障转移授权等。

  • 客户端永远不要尝试与群集总线端口进行通信,而应始终与普通的Redis命令端口进行通信,但是请确保同时打开防火墙中的两个端口,否则Redis群集节点将无法进行通信。命令端口和集群总线端口的偏移量是固定的,并且始终为10000。

  • 如果没有同时打开两个TCP端口,则群集将无法正常工作。

  • 集群总线使用不同的二进制协议进行节点到节点的数据交换,它更适合于用很少的带宽和处理时间在节点之间交换信息。

Redis Cluster数据分片

Redis Cluster不使用一致性哈希,而是使用一种叫哈希槽hash_slot的东西。

Redis群集中有16384个哈希槽,当我们在Redis中存储一对Key-Value时,要计算给定Key的哈希槽。方法是先计算Key的CRC16,然后对计算出的结果取模16384:

hash_slot = CRC16(key) mod 16384

Redis群集中的每个Redis节点都负责哈希槽的子集,因此,如果有一个包含3个节点的群集,其中:

  • 节点A包含从0到5500的哈希槽。

  • 节点B包含从5501到11000的哈希槽。

  • 节点C包含从11001到16383的哈希槽。

这样可以轻松添加和删除集群中的节点。例如,如果我想添加一个新节点D,则需要将一些哈希槽从节点A,B,C移到D。类似地,如果我想从群集中删除节点A,则只需移动A所服务的哈希槽到B和C。当节点A为空时,我可以将其从群集中完全删除。

因为将哈希槽从一个节点移动到另一个节点不需要停止操作,所以添加或删除或者更改节点持有的哈希槽的占比不需要任何停机时间。

接下来我们利用Docker搭建一个三主三从的Redis集群。

使用Docker搭建RedisCluster

Redis配置

port ${PORT}                                       ##节点端口
protected-mode no                                  ##开启集群模式
cluster-enabled yes                                ##cluster集群模式
cluster-config-file nodes.conf                     ##集群配置名
cluster-node-timeout 5000                          ##超时时间
cluster-announce-ip 192.168.1.XX                   ##实际为各节点网卡分配ip  先用一个ip代替
cluster-announce-port ${PORT}                      ##节点映射端口
cluster-announce-bus-port 1${PORT}                 ##节点总线端口
appendonly yes                                     ##持久化模式

创建自定义network

docker network create redis-net

自定义路径

mkdir -p /usr/redis_cluster
cd /usr/redis_cluster

在自定义路径下生成成conf和data目标,并生成配置信息

for port in `seq 6001 6006`; do
    mkdir -p ./${port}/conf
    touch ./${port}/conf/redis.conf 
    mkdir -p ./${port}/data 
    echo "port ${port}" >>./${port}/conf/redis.conf
    echo "protected-mode no" >>./${port}/conf/redis.conf
    echo "cluster-enabled yes" >>./${port}/conf/redis.conf
    echo "cluster-config-file nodes.conf" >>./${port}/conf/redis.conf
    echo "cluster-node-timeout 5000" >>./${port}/conf/redis.conf
    echo "cluster-announce-ip 192.168.1.XX" >>./${port}/conf/redis.conf
    echo "cluster-announce-port ${port}" >>./${port}/conf/redis.conf
    echo "cluster-announce-bus-port 1${port}" >>./${port}/conf/redis.conf
    echo "appendonly yes" >>./${port}/conf/redis.conf
done
  • cluster-announce-ip 192.168.1.XX 中的IP必须是容器间通信的ip,之后可以在之前新增的network中查看。

  • 共生成6个文件夹,从6001到6006,每个文件夹下包含data和conf文件夹,同时conf里面有redis.conf配置文件。

启动Redis容器

for port in `seq 6001 6006`; do \
  docker run -d --privileged=true -p ${port}:${port} -p 1${port}:1${port}\
  -v $PWD/${port}/conf/redis.conf:/usr/local/etc/redis/redis.conf \
  -v $PWD/${port}/data:/data \
  --restart always --name redis-${port} --net redis-net \
  redis:5.0.5 redis-server /usr/local/etc/redis/redis.conf; \
done

启动集群

# 进入任意Redis容器
docker exec -it redis-6001 /bin/bash
# 初始化Redis集群命令
redis-cli --cluster create 172.19.0.2:6601 172.19.0.3:6602 172.19.0.4:6603 172.19.0.5:6604 172.19.0.6:6605 172.19.0.7:6606 --cluster-replicas 1
  • 创建成功后我们可以使用redis-cli命令连接到其中一个Redis服务.

# 单机模式启动
redis-cli -h 127.0.0.1 -p 6001
# 集群模式启动
redis-cli -c -h 127.0.0.1 -p 6001
  • 之后通过cluster nodes命令可以查看节点信息,发现符合3主3从的预期

到此,关于“Redis中的Cluster集群介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: Redis中的Cluster集群介绍

本文链接: https://www.lsjlt.com/news/56673.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Redis中的Cluster集群介绍
    这篇文章主要介绍“Redis中的Cluster集群介绍”,在日常操作中,相信很多人在Redis中的Cluster集群介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redi...
    99+
    2024-04-02
  • Redis集群(Cluster)
    Redis集群 集群解决的问题代理主机和无中心化集群Redis集群的特点Redis集群环境搭建slots(插槽)在集群中录入值查询集群中的值故障恢复Redis集群的优缺点 集群解决的问...
    99+
    2023-08-31
    redis 数据库 服务器
  • redis 3.0 cluster 集群
    周氏一族,整理技术文档,给下一代留点教程......redis 3.0 cluster 安装篇,请看 http://zhoushouby.blog.51cto.com/9150272/1560400 本篇,是在 "redis 3.0 clu...
    99+
    2023-01-31
    集群 redis cluster
  • Redis中cluster集群的示例分析
    这篇文章主要为大家展示了“Redis中cluster集群的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Redis中cluster集群的示例分析”这篇文...
    99+
    2024-04-02
  • Redis集群(cluster模式)搭建
    目录 1、什么是集群 2、为什么使用 3、集群连接 4、redis cluster 如何分配这六个节点 5、集群搭建: 1、什么是集群 Redis 集群(包括很多小集群)实现了对Redis的水平扩容,即启动N个redis节点,将整个数...
    99+
    2023-09-05
    redis 数据库 java linux
  • Redis高可用集群redis-cluster详解
    哨兵模式主要解决了手动切换主从节点的问题 1 , 哨兵模式的缺陷 .主从节点切换的时候存在访问瞬断,等待时间较长, .只有一个master节点提供写,slave节点提供读,尽管写的效...
    99+
    2024-04-02
  • Redis Cluster 集群搭建你会吗
    三台机器 201、202、203,每台机器装两个 redis 实例,构建 redis cluster 集群。 1. 安装 添加 redis-cluster 目录,将 redis 压缩...
    99+
    2024-04-02
  • Redis6.0搭建集群Redis-cluster的方法
    此处以三台服务器部署为例,IP地址分别为192.168.124.23,192.168.124.24,192.168.124.25 使用普通用户ubuntu登录 总共三个主节点和三个从...
    99+
    2024-04-02
  • k8s部署redis cluster集群的实现
    目录Redis 介绍为什么要用Redis什么是Redis Cluster集群k8s以StatefulSet方式部署redis cluster集群:部署nfs创建pv部署redis初始...
    99+
    2024-04-02
  • Redis Cluster集群动态扩容的实现
    目录一、引言 二、Cluster集群增加操作1、动态增加Master主服务器节点 2、动态增加Slave从服务器节点 三、Cluster集群删除操作 1、动态删除Slave从服务器节...
    99+
    2024-04-02
  • redis的cluster集群怎么进行选举
    在Redis Cluster中,每个节点都有可能成为主节点或从节点。当一个主节点宕机或无法连接时,Redis Cluster会通过选...
    99+
    2024-04-09
    redis
  • Redis cluster集群模式的原理解析
    redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放...
    99+
    2024-04-02
  • Redis 6.X Cluster集群如何搭建
    这篇文章将为大家详细讲解有关Redis 6.X Cluster集群如何搭建,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 Part1Redis 6.X Cluster 集群搭建1下载解压可直接到...
    99+
    2023-06-15
  • Redis的Cluster集群搭建的实现步骤
    目录一、引言二、Redis的Cluster模式介绍1、Redis群集101 2、Redis群集TCP端口 3、Redis集群和Docker 4、Redis集群数据分片 5、Redis...
    99+
    2024-04-02
  • Kubernetes集群的组成介绍
    Kubernetes集群的组成 我们谈起 Kubernetes 和应用部署时,往往会涉及到容器、节点、Pods 等概念,还有各种术语,令人眼花缭乱。为了更好地摸清 Kubernete...
    99+
    2024-04-02
  • Redis集群架构简介
    本篇内容介绍了“Redis集群架构简介”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Redis Clu...
    99+
    2024-04-02
  • 怎么安装搭建redis cluster 4.0.9集群
    本篇内容主要讲解“怎么安装搭建redis cluster 4.0.9集群”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么安装搭建redis cluster 4...
    99+
    2024-04-02
  • Zookeeper集群的搭建及介绍
    本篇内容主要讲解“Zookeeper集群的搭建及介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Zookeeper集群的搭建及介绍”吧!1.搭建怎么搭建单机无安全校验的就不说了,百度一搜一大堆...
    99+
    2023-06-19
  • Redis Cluster集群收缩主从节点的方法
    这篇“Redis Cluster集群收缩主从节点的方法”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来...
    99+
    2024-04-02
  • Redis cluster集群需要至少多少个redis节点
    这篇文章主要介绍“Redis cluster集群需要至少多少个redis节点”,在日常操作中,相信很多人在Redis cluster集群需要至少多少个redis节点问题上存在疑惑,小编查阅了各式资料,整理出...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作