Redis 分片集群模式

主从和哨兵可以解决高可用、高并发读的问题。但是依然有两个问题没有解决:

  • 海量数据存储问题,单台服务的磁盘存储终究是有瓶颈;

  • master 负责写操作,高并发写情况下,单台 master 终究是有瓶颈;

使用分片集群可以解决上述问题,分片集群有以下特征:

  • 集群中有多个 master,每个 master 保存不同数据;
  • 每个 master 都可以有多个 slave 节点;
  • master 之间通过 ping 监测彼此的监控状态;

Redis 分片集群搭建

集群规划

在同一台虚拟机中开启 6 个 redis 实例,模拟分片集群,信息如下:

IP PORT 角色
192.168.0.2 7001 master
192.168.0.2 7002 master
192.168.0.2 7003 master
192.168.0.2 8001 slave
192.168.0.2 8002 slave
192.168.0.2 8003 slave
实例和配置

创建出7001、7002、7003、8001、8002、8003目录,作为节点存储目录。

mkdir -p /root/tmp/redis-cluster/{7001,7002,7003,8001,8002,8003}

在 /root/tmp/redis-cluster 下准备一个新的redis.conf文件,内容如下:

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

将这个文件拷贝到每个节点目录下:

cd /root/tmp/redis-cluster && echo 7001 7002 7003 8001 8002 8003 | xargs -t -n 1 cp redis.conf

修改每个目录下的 redis.conf,将其中的 6379 修改为与所在目录一致:

cd /root/tmp/redis-cluster && printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i 's/6379/{}/g' {}/redis.conf
启动
cd /root/tmp/redis-cluster && printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf

验证所有节点是否启动

ps -ef | grep redis

创建集群
redis-cli --cluster create --cluster-replicas 1 \
192.168.0.2:7001 \
192.168.0.2:7002 \
192.168.0.2:7003 \
192.168.0.2:8001 \
192.168.0.2:8002 \
192.168.0.2:8003

指令说明:

  • –cluster 代表集群操作命令
  • create:代表是创建集群
  • –cluster-replicas 1 :指定集群中每个 master 的副本个数为 1,此时节点总数 ÷ (replicas + 1) 得到的就是 master 的数量。因此节点列表中的前n个就是 master,其它节点都是 slave 节点,随机分配到不同 master。

输入 “yes”

查看集群状态

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

redis-cli -p 7001 cluster nodes

测试

集群操作时,需要给redis-cli加上-c参数

redis-cli -c -p 7001

设置不同键值,redis 分片集群将数据存储到不同的 master 插槽上。

127.0.0.1:7001> set num 123
OK
127.0.0.1:7001> get num
"123"
127.0.0.1:7001> set a 1
-> Redirected to slot [15495] located at 192.168.0.2:7003
OK
192.168.0.2:7003> get a
"1"

Redis 分片集群搭建相关推荐

  1. Docker中搭建redis分片集群,搭建redis哨兵结构,实现springboot中对redis分片集群、哨兵结构的访问,Redis缓存雪崩、缓存击穿处理(非关系型数据库技术课程 第十二周)

    文章目录 一.要求: 二.知识总结 缓存雪崩 解决方案 docker中redis分片集群搭建 配置好配置文件 redis-6380.conf redis-6381.conf redis-6382.co ...

  2. redis主从搭建和分片集群搭建

    文章目录 redis主从搭建 搭建一主一从: 下载安装redis:两台机器都需要操作 权限认证 理解主从复制原理.同步数据集 全量同步三个阶段: 增量同步: 心跳检测 redis哨兵模式 部署方案 搭 ...

  3. Docker下搭建Redis分片集群

    分片集群结构 同一台虚拟机中开启6个redis实例,模拟分片集群 IP  PORT 角色 192.168.19.128 7001 master 192.168.19.128 7002 master 1 ...

  4. 和你聊聊如何搭建redis分片集群

    摘要:我发现,凡是涉及到大数据存储,好像都得有个横向扩容方案,不管是在应用层实现,还是在数据存储本身实现.Redis作为一个高效的数据缓存,也周到的提供了数据sharding特性,本文就先讲下最基础的 ...

  5. Redis 主从集群搭建及哨兵模式配置

    Redis 主从集群搭建及哨兵模式配置 最近搭建了redis集群及哨兵模式,为方便以后查看特此记录下来: 1.Redis安装 2.主从架构 2.1 Redis主从架构图 2.2Redis主从结构搭建 ...

  6. Linux 系列(三)——Redis 分布式集群搭建

     在Redis的安装和部署(Linux)一文中详细介绍了在Linux环境中搭建Redis服务,本文将介绍关于Redis分布式 集群搭建细节. 一.Redis集群架构 1.Redis集群架构图 蓝色 ...

  7. redis docker 集群搭建

    redis docker 集群搭建 1. 安装镜像 docker pull redis:latest 2. 创建conf模板和脚本 # 创建模板目录 mkdir /data/redis_conf# 创 ...

  8. Redis主从集群搭建及其原理

    Redis主从集群搭建及其原理 1.Redis主从 1.1.搭建主从架构 1.2.准备实例和配置 1.3.启动 1.4.开启主从关系 1.5.测试 2.主从数据同步原理 2.1.全量同步 2.2.增量 ...

  9. Redis分片集群启动过程分析

    Redis分片集群启动分析 分片集群为6个节点,备份方式AOF和RDB都已经开启 节点启动log分析 1:C 08 May 2023 05:34:52.156 # oO0OoO0OoO0Oo Redi ...

最新文章

  1. 【camera-radar】基于ROS的多传感器融合感知系统实现(雷达+相机)(3)
  2. kubernetes 1.14安装部署helm插件
  3. CAD2010安装说明
  4. linux centos7 mysql_Linux centos7环境下安装MySQL的步骤详解
  5. 充电原理_电动汽车充电桩如何设置?充电桩原理介绍
  6. Ioc容器Autofac介绍
  7. ipv6的127位掩码如何表示_子网掩码为255.255.255.0代表的意思是什么?
  8. R 语言在数据处理上的禀赋之——独特的数据类型
  9. w ndows7浏览器网页,win7系统IE浏览器播放网页视频失败的解决方法
  10. python数据分析与展示 嵩天_Python数据分析与展示第2周学习笔记(北理工 嵩天)...
  11. [转载] Python 中使用help()命令后如何退出
  12. 【210518】印象笔记 Windows 安装升级出现错误 “找不到msi文件” 解决办法
  13. itextpdf实现多PDF文件合并为一个PDF文档
  14. 网页唤起QQ在线聊天
  15. (转)练好太极拳 基本功是必经之路
  16. 关于某课堂的视频文件ts文件下载——m3u8加密问题
  17. 最短路径之Floyd(弗洛伊德)算法,以及显示完整路径
  18. CSS3-04 样式 3
  19. USACO-Stamps
  20. [CSS] 浮动 float属性、clear属性详解

热门文章

  1. 有向图的入度与出度的关系(摘要)
  2. 甲骨文对MySQL的策略
  3. qt 自定义按钮图标
  4. python安装库常用命令
  5. 设计模式-- 门面模式
  6. python对数组进行排序_python 字典、数组排序
  7. oracle优化器统计信息相关
  8. 微信公众号【用户分组管理-web页面】
  9. sqli_labs通关秘籍
  10. 网易云音乐Java面试题:Mybatis事务+SpringBean+Java锁+Redis