Redis 分片集群搭建
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 分片集群搭建相关推荐
- Docker中搭建redis分片集群,搭建redis哨兵结构,实现springboot中对redis分片集群、哨兵结构的访问,Redis缓存雪崩、缓存击穿处理(非关系型数据库技术课程 第十二周)
文章目录 一.要求: 二.知识总结 缓存雪崩 解决方案 docker中redis分片集群搭建 配置好配置文件 redis-6380.conf redis-6381.conf redis-6382.co ...
- redis主从搭建和分片集群搭建
文章目录 redis主从搭建 搭建一主一从: 下载安装redis:两台机器都需要操作 权限认证 理解主从复制原理.同步数据集 全量同步三个阶段: 增量同步: 心跳检测 redis哨兵模式 部署方案 搭 ...
- Docker下搭建Redis分片集群
分片集群结构 同一台虚拟机中开启6个redis实例,模拟分片集群 IP PORT 角色 192.168.19.128 7001 master 192.168.19.128 7002 master 1 ...
- 和你聊聊如何搭建redis分片集群
摘要:我发现,凡是涉及到大数据存储,好像都得有个横向扩容方案,不管是在应用层实现,还是在数据存储本身实现.Redis作为一个高效的数据缓存,也周到的提供了数据sharding特性,本文就先讲下最基础的 ...
- Redis 主从集群搭建及哨兵模式配置
Redis 主从集群搭建及哨兵模式配置 最近搭建了redis集群及哨兵模式,为方便以后查看特此记录下来: 1.Redis安装 2.主从架构 2.1 Redis主从架构图 2.2Redis主从结构搭建 ...
- Linux 系列(三)——Redis 分布式集群搭建
在Redis的安装和部署(Linux)一文中详细介绍了在Linux环境中搭建Redis服务,本文将介绍关于Redis分布式 集群搭建细节. 一.Redis集群架构 1.Redis集群架构图 蓝色 ...
- redis docker 集群搭建
redis docker 集群搭建 1. 安装镜像 docker pull redis:latest 2. 创建conf模板和脚本 # 创建模板目录 mkdir /data/redis_conf# 创 ...
- Redis主从集群搭建及其原理
Redis主从集群搭建及其原理 1.Redis主从 1.1.搭建主从架构 1.2.准备实例和配置 1.3.启动 1.4.开启主从关系 1.5.测试 2.主从数据同步原理 2.1.全量同步 2.2.增量 ...
- Redis分片集群启动过程分析
Redis分片集群启动分析 分片集群为6个节点,备份方式AOF和RDB都已经开启 节点启动log分析 1:C 08 May 2023 05:34:52.156 # oO0OoO0OoO0Oo Redi ...
最新文章
- 【camera-radar】基于ROS的多传感器融合感知系统实现(雷达+相机)(3)
- kubernetes 1.14安装部署helm插件
- CAD2010安装说明
- linux centos7 mysql_Linux centos7环境下安装MySQL的步骤详解
- 充电原理_电动汽车充电桩如何设置?充电桩原理介绍
- Ioc容器Autofac介绍
- ipv6的127位掩码如何表示_子网掩码为255.255.255.0代表的意思是什么?
- R 语言在数据处理上的禀赋之——独特的数据类型
- w ndows7浏览器网页,win7系统IE浏览器播放网页视频失败的解决方法
- python数据分析与展示 嵩天_Python数据分析与展示第2周学习笔记(北理工 嵩天)...
- [转载] Python 中使用help()命令后如何退出
- 【210518】印象笔记 Windows 安装升级出现错误 “找不到msi文件” 解决办法
- itextpdf实现多PDF文件合并为一个PDF文档
- 网页唤起QQ在线聊天
- (转)练好太极拳 基本功是必经之路
- 关于某课堂的视频文件ts文件下载——m3u8加密问题
- 最短路径之Floyd(弗洛伊德)算法,以及显示完整路径
- CSS3-04 样式 3
- USACO-Stamps
- [CSS] 浮动 float属性、clear属性详解