Redis集群搭建Cluster 集群模式

  • 引言
  • Redis的集群介绍
  • 搭建方法
    • 创建集群
    • 其他服务的搭建

引言

redis相信大家不陌生,是最常用的缓存解决方案了。但是,在服务开发中,单机都会存在单点故障的问题,及服务部署在一台服务器上,一旦服务器宕机服务就不可用,所以为了让服务高可用,分布式服务就出现了,将同一服务部署到多台机器上,即使其中几台服务器宕机,只要有剩余的服务器可用服务就可用。redis也是一样,要合理的使用redis,搭建一个高可用的集群是必不可少的。

Redis的集群介绍

redis常见有三种集群方案,下面简单介绍一下:

  1. 主从模式
    首先为了解决单机故障引入了主从模式,但主从模式存在一个问题:master节点故障后服务,需要人为的手动将slave节点切换成为maser节点后服务才恢复。
  2. 哨兵模式
    为了解决master节点故障问题,redis又引入了哨兵模式,哨兵模式能在master节点故障后能自动将salve节点提升成master节点,不需要人工干预操作就能恢复服务可用。但是主从模式、哨兵模式都没有达到真正的数据sharding存储,每个redis实例中存储的都是全量数据。
  3. 分片集群
    实现了真正的数据分片存储,有如下特征

集群中有多个master,每个master保存不同数据

每个master都可以有多个slave节点

master之间通过ping监测彼此健康状态

客户端请求可以访问集群任意节点,最终都会被转发到正确节点

搭建方法

我们就按照上图搭建一个最小的分片集群,包含3个master节点,每个master节点包含一个slave节点。我使用的系统是CentOS7。
1、创建目录如下:

选择一个目录。我选择的是/opt/CJY/redis-cluster执行命令
mkdir 7001 7002 7003 8001 8002 8003


2、在redis-cluster目录下准备一个redis.conf文件,内容如下

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

创建完成如下:

3、将这个文件拷贝到刚才创建的每个目录

#执行拷贝

echo 7001 7002 7003 8001 8002 8003 | xargs -t -n 1 cp redis.conf

4、更换端口,修改每个目录下的redis.conf,将其中的6379修改为与所在目录一致:

#修改配置文件
printf ‘%s\n’ 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i ‘s/6379/{}/g’ {}/redis.conf

5、配置完成以后,将一台redis拉取到当前目录下。我选择的是redis-6.2.4,需要一个tar.gz包,之后解压到当前目录

tar -zxvf redis-6.2.4.tar.gz

6、接下来就可以启动了,可以看到重要的就是第二步的conf文件了

#一键启动所有服务
printf ‘%s\n’ 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf

7、ps查看状态

ps -ef | grep redis


服务正常启动,如果要关闭所以进程,可以执行如下命令:

printf ‘%s\n’ 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-cli -p {} shutdown

创建集群

上诉已经启动了多个redis服务,但是每个服务之间都是独立的,没有进行关联,我们需要执行命令来创建集群。redis5.0之后集群管理命令都集成到了redis-cli中。命令如下:地址需要换成自己的地址哦

#进入redis的src目录
cd /opt/CJY/redis-cluster/redis-6.2.4/src
#创建集群
./redis-trib.rb create --replicas 1 192.168.150.101:7001 192.168.150.101:7002 192.168.150.101:7003 192.168.150.101:8001 192.168.150.101:8002 192.168.150.101:8003.

命令说明:

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


如果连接的是远程地址而没执行成功,要检查一下上诉的端口是否打开。同时,还需要打开其加1w的端口,比如7001打开的同时,还要打开17001端口,其代表着内部的通信端口


输入yes后,集群开始创建。并且可以自动创建出master和salve节点。根据如下命令查看集群状态:

redis-cli -p 7001 cluster nodes


至此,集群搭建完成。使用连接工具测试一下:

可以连接

为了安全可以再加上用户名密码。

没有过多的介绍分别集群的其他作用,可看这篇文章:
https://blog.csdn.net/qq_45748269/article/details/121721611

其他服务的搭建

前面的一篇文章也有一个es集群的搭建,
https://blog.csdn.net/qq_40454136/article/details/125277059
其他,参考其他博主搭建过单机的kafka和zookeeper,都是亲测成功的
https://blog.csdn.net/WeiJiFeng_/article/details/108810545
https://blog.csdn.net/yuntianxia111/article/details/121404739

Redis集群搭建(Cluster 集群模式,分片集群)相关推荐

  1. Spark基础学习笔记06:搭建Spark On YARN模式的集群

    文章目录 零.本讲学习目标 一.在Spark Standalone模式的集群基础上修改配置 二.运行Spark应用程序 (一)启动Hadoop的HDFS和YARN (二)运行Spark应用程序 (三) ...

  2. Kafka 集群搭建(含 ZK 模式和 Kraft 模式)

    前言 环境介绍 虚拟机软件:VirtualBox Linux 发行版本:Ubuntu 20.04.4 虚拟机核心数:1 core 虚拟机内存:2 GB JDK 版本:1.8.0_202 ZK 版本:3 ...

  3. 保姆级zookeeper集群搭建(leader+follower模式)

    Zookeeper集群搭建指的是ZooKeeper分布式模式安装.通常由2n+1台server组成.这是因为为了保证Leader选举(基于Paxos算法的实现)能过得到多数的支持,所以ZooKeepe ...

  4. Day123.ElasticSearch:CAP定理、集群搭建、架构原理及分片、倒排索引、面试题

    目录 一.CAP定理 二.ES集群 1.搭建集群: 2.head 插件安装 3.集群测试 4.核心概念 二.架构原理及分片 一. ElasticSearch 分片 二. 分片控制 三. 分片原理 1. ...

  5. 1、大数据集群搭建之----jdk安装和zookeeper集群安装

    这里废话不多说,上来就干.(如果配置不成功或遇到问题,可以留言,共同解决问题) 我的百度网盘里面有所有的用到的软件,永久有效无加密. https://pan.baidu.com/s/1pqW6bHxh ...

  6. K8S集群搭建:利用kubeadm构建K8S集群

    master主服务器配置 #--kubernetes-version=v1.14.1指定版本 #--pod-network-cidr=10.244.0.0/16 指定虚拟IP的范围(以10.244开头 ...

  7. mysql集群搭建及性能调优之一(集群搭建)

    本文讲解mysql的集群搭建 文章目录 1. docker安装并启动三台mysql 2. 创建基础库并设置可访问用户 3. 主从配置 3.1 主服务器配置 3.2 从服务器配置 1. docker安装 ...

  8. Hadoop集群搭建(五:Hadoop HA集群模式的安装)

    实验 目的 要求 目的: 1.Hadoop的高可用完全分布模式的安装和验证 要求: 完成Hadoop的高可用完全分布模式的安装: Hadoop的相关服务进程能够正常的启动: HDFS能够正常的使用: ...

  9. 干货来袭!手动搭建高可用的Redis5-0分片集群

    其实互联网职业可以大致分两个阶段,在毕业后的3到5年内主要都是以学习.积累为主,从一开始啥都不懂的校园"新鲜人"向"职业人"转变.如果你是Java开发者,在这个 ...

  10. linux 计算集群搭建,使用centos构建服务器计算集群

    yum源的搭建 排除列表 #新建文件 [root@centos-test ~]# vim /usr/local/local_mirror/exclude.list #填入内容 SRPMS aarch6 ...

最新文章

  1. Attack on Alpha-Zet
  2. GitHub 项目 增加成员
  3. Redis Monitor命令 - 实时打印出Redis服务器接收到的命令,调试用
  4. 云桌面 瘦终端_云桌面选择云终端还是瘦客户机?
  5. (26)VHDL实现或(数据流描述)
  6. php报表统计曲线源代码,PHP绘制心电形状曲线统计图表[源码]_PHP教程
  7. HDU3123:GCC(同余模简单题)
  8. ASP.NET MVC 2 正式版发布了的
  9. Java loadlibrary分析及如何unload
  10. caxa线切割怎样画链轮_Autocad实战教程-线切割画链轮
  11. oracle导出表904错误,月光软件站 - 编程文档 - 数据库 - EXP-00008: ORACLE error 904 encountered的解决方法...
  12. shiro 自定义FormAuthenticationFilter,记住我
  13. 干货 | 敏捷培训必备小游戏,都在这里了!
  14. 发现好文!51单片机特殊功能寄存器 /I/O口操作 /中断/ 定时器/ 串口通信/ ---位寻址解释由来--以及程序例程
  15. 小米手机第一次使用SSR提示“创建一个XXX链接”,无法点击确定
  16. 微信专属输入法你有了吗?防窃听、护隐私
  17. css 超链接样式设置
  18. 分类模型训练完之后,测试效果极差可能原因分析
  19. 老婆的美丽背影------俞敏洪
  20. Freebsd7 Xorg7.3 KDE3.5 桌面系统安装及美化

热门文章

  1. 我找不到我的电子邮件从 Outlook 数据文件 (.pst) 导入后,收发功能正常
  2. linux下内存 历史遗留,内存分配的原理
  3. MySQL 数据库(Python 连接数据库)
  4. 环球资源移动电子展揭幕
  5. HRESULT返回值解析
  6. 手机第一次怎么充电?
  7. 【密码学】Python用零知识证明实现地图三染色问题
  8. js清空数组遇到的小问题
  9. 软件项目管理,第二讲,习题记录
  10. 如何借助数字签名保护文档安全性