我们使用Sentinel模式搭建的redis集群虽然解决了高可用的问题,但是最终也只有一个主节点;当业务量大的时候会产生如下问题:
并发写的请求增高;
数据量增大;此时需要考虑数据分片存储了;
单个服务器的网卡上限达到瓶颈;
由此单个主从复制就无法满足需求了,因此Redis Cluster模式登场了;
Redis Cluster是分布式架构:即Redis Cluster中有多个节点(主从复制节点),每个节点都负责进行数据读写操作;每个节点之间会进行通信。简单来说就是多个主从复制节点集群提供服务。
集群要求:
Redis集群至少需要3个节点,因为投票容错机制要求超过半数节点认为某个节点挂了该节点才是挂了,所以2个节点无法构成集群。
要保证集群的高可用,需要每个节点都有从节点,也就是备份节点,所以Redis集群至少需要6台服务器。
部署集群
我们在每台机器上执行如下命令来创建6个redis服务。
docker run -d -v /home/app/redis-cluster/data:/data --name redis-cluster -p 6379:6379 -p 16379:16379 redis redis-server --requirepass "123456" --appendonly yes --masterauth "123456" --cluster-enabled yes复制
后面这个16379端口使用redis集群间进行数据通讯的端口,它是在你设置的redis访问端口上+10000;
如果向使用配置文件实现可以修改redis.conf配置中集群相关配置即可,获取redis.conf配置:
wget http://download.redis.io/redis-stable/sentinel.conf复制
在上面的命令需要加上配置文件路径映射,下面是示例命令
docker run -d -v /home/app/redis-cluster/data:/data -v /home/app/redis/conf:/usr/local/etc/redis --name redis-c1 -p 6381:6379 -p 16379:16379 redis redis-server /usr/local/etc/redis/redis.conf复制
下面开始集群的配置,直接使用redis-cli创建集群即可;
docker exec -it redis-cluster /bin/bash
redis-cli --cluster create 192.168.56.101:6379 192.168.56.102:6379 192.168.56.103:6379 192.168.56.104:6379 192.168.56.105:6379 192.168.56.106:6379 --cluster-replicas 1 -a 123456复制
参数最后加-a是因为我们设置了密码,因此需要加上访问密码;之后输入yes即可。
注意如果在一台机器上搞的docker需要使用host模式的网络连接类型才行,在创建的时候需要使用docker容器的IP;我们通过docker inspect 容器ID命令获取容器的IP。
文章转载自起岸星辰,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
NineData 社区版征文评测活动圆满收官!
NineData
142次阅读
2025-04-09 11:01:15
国产非关系型数据库 Eloqkv 初体验
JiekeXu
132次阅读
2025-04-10 23:51:35
融合Redis缓存的PostgreSQL高可用架构
梧桐
86次阅读
2025-04-08 06:35:40
下一代DBA必备技能
Bytebase
68次阅读
2025-03-28 14:59:40
Pigsty v3.4发布:更好的备份与PITR,排序,基础设施与应用
非法加冯
41次阅读
2025-04-02 09:34:20
Redis概要
听溪
38次阅读
2025-04-11 10:23:10
docker安装jenkins
IT那活儿
35次阅读
2025-03-31 10:00:41
Dify使用deepseek
golang算法架构leetcode技术php
34次阅读
2025-04-21 10:35:08
知识文档 | docker容器中的操作系统内核调用的是自己还是宿主机层的?
戏说数据那点事
34次阅读
2025-04-02 09:34:18
安装与配置Redis
鲁鲁
33次阅读
2025-04-11 10:26:10