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中使用lua脚本的原理与基本使用详解

《redis中使用lua脚本的原理与基本使用详解》在Redis中使用Lua脚本可以实现原子性操作、减少网络开销以及提高执行效率,下面小编就来和大家详细介绍一下在redis中使用lua脚本的原理... 目录Redis 执行 Lua 脚本的原理基本使用方法使用EVAL命令执行 Lua 脚本使用EVALSHA命令

SpringBoot3.4配置校验新特性的用法详解

《SpringBoot3.4配置校验新特性的用法详解》SpringBoot3.4对配置校验支持进行了全面升级,这篇文章为大家详细介绍了一下它们的具体使用,文中的示例代码讲解详细,感兴趣的小伙伴可以参考... 目录基本用法示例定义配置类配置 application.yml注入使用嵌套对象与集合元素深度校验开发

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Redis Pipeline(管道) 详解

《RedisPipeline(管道)详解》Pipeline管道是Redis提供的一种批量执行命令的机制,通过将多个命令一次性发送到服务器并统一接收响应,减少网络往返次数(RTT),显著提升执行效率... 目录Redis Pipeline 详解1. Pipeline 的核心概念2. 工作原理与性能提升3. 核

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

Nginx location匹配模式与规则详解

《Nginxlocation匹配模式与规则详解》:本文主要介绍Nginxlocation匹配模式与规则,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、环境二、匹配模式1. 精准模式2. 前缀模式(不继续匹配正则)3. 前缀模式(继续匹配正则)4. 正则模式(大

redis过期key的删除策略介绍

《redis过期key的删除策略介绍》:本文主要介绍redis过期key的删除策略,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录第一种策略:被动删除第二种策略:定期删除第三种策略:强制删除关于big key的清理UNLINK命令FLUSHALL/FLUSHDB命