redis集群配置(精华版):分片集群模式

2024-03-30 09:36

本文主要是介绍redis集群配置(精华版):分片集群模式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

分片集群模式

      • 概念
      • 动手实操
        • 1、环境准备
        • 2、配置文件配置
        • 3、启动所有redis
        • 4、创建集群
        • 5、测试集群读/写

概念

Redis 分片集群是一种用于横向扩展 Redis 数据库的方法,它将数据分散存储在多个 Redis 节点中,从而提高了系统的吞吐量和容量。在 Redis 分片集群中,数据被分割成多个片段(或分片),然后分布在不同的 Redis 节点上。

以下是 Redis 分片集群的一些关键概念和工作原理:

  1. 分片:数据按照某种规则(比如哈希)被分割成多个片段,每个片段被称为一个槽(slot)。槽是 Redis 分片集群中数据的基本单元。

  2. 节点:Redis 分片集群由多个节点组成,每个节点都是一个独立的 Redis 服务器。每个节点都负责存储和处理一部分数据片段,并且节点之间相互通信以实现数据的路由和同步。

  3. 槽分配:在 Redis 分片集群中,每个槽都被分配给一个节点,节点负责存储和处理分配给它的槽中的数据。槽的分配可以由系统自动完成,也可以手动配置。

  4. 路由:当客户端发送命令到 Redis 分片集群时,集群会根据命令操作的键值来确定数据属于哪个槽,并将命令路由到负责该槽的节点上进行处理。

  5. 数据复制:为了提高数据的可用性和容错性,Redis 分片集群通常会对数据进行复制。每个槽中的数据通常会有一个或多个副本,这些副本存储在不同的节点上。当主节点(存储数据的节点)宕机时,系统会自动选举一个从节点(副本节点)来成为新的主节点,从而保证数据的可用性。

  6. 集群管理:Redis 分片集群需要进行管理和监控,包括节点的健康状态监测、槽的分配和重新分配、数据的迁移、故障恢复等。Redis 提供了一些工具和命令来进行集群管理,比如 redis-cliredis-trib.rbCLUSTER 命令等。

动手实操

1、环境准备

三台centos7虚拟机,每台虚拟机,一个master,一个slave

在这里插入图片描述

节点IPPORT
master192.168.3.1318001
master192.168.3.1378002
master192.168.3.1388003
slave192.168.3.1319001
slave192.168.3.1379002
slave192.168.3.1389003
2、配置文件配置

由于需要和之前搭建的主从模式、哨兵模式的redis集群区分开,同时满足6个节点(3个master、3个slave),所以我直接重新复制原装的redis.conf文件到每台虚拟机对应的两个文件夹(master、slave)里面

我在三台服务器的/usr/local/bin/kconfig文件夹下新建masterslave文件夹,并复制原装的redis.conf

在这里插入图片描述

接着给每个redis.conf文件修改以下内容:我这里是先改一个,复制到另外5个,再小改(整体符合实际即可)

port 8001
# 开启集群功能
cluster-enabled yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file /tmp/master/nodes-6379.conf
# 节点心跳失败的超时时间
cluster-node-timeout 5000
# 持久化文件存放目录
dir /tmp/master
# 绑定地址
bind 0.0.0.0
# 让redis后台运行
daemonize yes
# 注册的实例ip
replica-announce-ip 192.168.3.131
# 保护模式
protected-mode no
# 数据库数量
databases 1
# 日志
logfile /tmp/master/run.log

以3台虚拟机的master为例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

给redis的输出文件创建文件夹,否则会报错

在这里插入图片描述

3、启动所有redis
redis-server kconfig/master/redis.conf
redis-server kconfig/slave/redis.conf
ps -ef | grep redis

在这里插入图片描述

4、创建集群

虽然服务启动了,但是目前每个服务之间都是独立的,没有任何关联。

我们需要执行命令来创建集群,在Redis5.0之前创建集群比较麻烦,5.0之后集群管理命令都集成到了redis-cli中。

笔者在这里只介绍redis5.0之后的

我们使用的是Redis5.0.7版本,集群管理以及集成到了redis-cli中,格式如下:

redis-cli --cluster create 192.168.3.131:8001 192.168.3.131:9001 192.168.3.137:8002 192.168.3.137:9002 192.168.3.138:8003 192.168.3.138:9003 --cluster-replicas 1

在这里插入图片描述

这里输入yes,则集群开始创建:

在这里插入图片描述

通过命令可以查看集群状态:

redis-cli -p 8001 cluster nodes

在这里插入图片描述

5、测试集群读/写

集群操作时,需要给redis-cli加上-c参数,否则会报错

以131服务器的8001为例:

redis-cli -c -p 8001

在这里插入图片描述

当我们写键值对的时候,redis分片集群会自动算到其中一个master/slave节点,将键值对保存

1)假如138服务器的master节点宕机,800*都为master节点

在这里插入图片描述

在这里插入图片描述

2)集群信息

在这里插入图片描述

这篇关于redis集群配置(精华版):分片集群模式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/861122

相关文章

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

SpringBoot多环境配置数据读取方式

《SpringBoot多环境配置数据读取方式》SpringBoot通过环境隔离机制,支持properties/yaml/yml多格式配置,结合@Value、Environment和@Configura... 目录一、多环境配置的核心思路二、3种配置文件格式详解2.1 properties格式(传统格式)1.

Debian系和Redhat系防火墙配置方式

《Debian系和Redhat系防火墙配置方式》文章对比了Debian系UFW和Redhat系Firewalld防火墙的安装、启用禁用、端口管理、规则查看及注意事项,强调SSH端口需开放、规则持久化,... 目录Debian系UFW防火墙1. 安装2. 启用与禁用3. 基本命令4. 注意事项5. 示例配置R

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例