实战04_redis-cluster集群搭建

接上一篇:实战_03_Redis基础命令https://blog.csdn.net/weixin_40816738/article/details/99213524

#安装gcc 
yum install gcc-c++
#使用yum命令安装 ruby  (我们需要使用ruby脚本来实现集群搭建)
yum install ruby
yum install rubygems
#将redis源码包上传到 linux 系统  ,解压redis源码包
#编译redis源码  ,进入redis源码文件夹
make
看到以下输出结果,表示编译成功

在这里插入图片描述

创建目录/app/redis-cluster目录,  安装6个redis实例,分别安装在以下目录
mkdir /app/redis-cluster
/app/redis-cluster/redis-1
/app/redis-cluster/redis-2
/app/redis-cluster/redis-3
/app/redis-cluster/redis-4
/app/redis-cluster/redis-5
/app/redis-cluster/redis-6
以第一个redis实例为例,命令如下
make install PREFIX=/app/redis-cluster/redis-cluster/redis-1
make install PREFIX=/app/redis-cluster/redis-cluster/redis-2
make install PREFIX=/app/redis-cluster/redis-cluster/redis-3
make install PREFIX=/app/redis-cluster/redis-cluster/redis-4
make install PREFIX=/app/redis-cluster/redis-cluster/redis-5
make install PREFIX=/app/redis-cluster/redis-cluster/redis-6

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

复制配置文件  将 /redis-3.0.0/redis.conf 复制到redis下的bin目录下
[root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-1/bin
[root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-2/bin
[root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-3/bin
[root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-4/bin
[root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-5/bin
[root@localhost redis-3.0.0]# cp redis.conf /app/redis-cluster/redis-6/bin

在这里插入图片描述

二、配置集群

修改每个redis节点的配置文件redis.conf

1、修改运行端口为7001 (7002 7003 …)
2、打开集群开关

[root@localhost src]# vim /app/redis-cluster/redis-1/bin/redis.conf
[root@localhost src]# vim /app/redis-cluster/redis-2/bin/redis.conf
[root@localhost src]# vim /app/redis-cluster/redis-3/bin/redis.conf
[root@localhost src]# vim /app/redis-cluster/redis-4/bin/redis.conf
[root@localhost src]# vim /app/redis-cluster/redis-5/bin/redis.conf
[root@localhost src]# vim /app/redis-cluster/redis-6/bin/redis.conf

将redis-1至redis-6的端口:port以次修改为7001-7006 前的注释去掉(45行)
在这里插入图片描述
将cluster-enabled yes 前的注释去掉(632行)
在这里插入图片描述
截图是redis-1的修改,其他5个和上面一样。
启动每个redis实例
以第一个实例为例,命令如下

[root@localhost bin]# cd /app/redis-cluster/redis-1/bin/
[root@localhost bin]# ./redis-server redis.conf

在这里插入图片描述

[root@localhost bin]# cd /app/redis-cluster/redis-2/bin/
[root@localhost bin]# ./redis-server redis.conf

在这里插入图片描述

[root@localhost bin]# cd /app/redis-cluster/redis-3/bin/
[root@localhost bin]# ./redis-server redis.conf

在这里插入图片描述

[root@localhost bin]# cd /app/redis-cluster/redis-4/bin/
[root@localhost bin]# ./redis-server redis.conf

在这里插入图片描述

[root@localhost bin]# cd /app/redis-cluster/redis-5/bin/
[root@localhost bin]# ./redis-server redis.conf

在这里插入图片描述

[root@localhost bin]# cd /app/redis-cluster/redis-6/bin/
[root@localhost bin]# ./redis-server redis.conf

在这里插入图片描述

redis6个实例启动完成之后,查看一下是不是都启动起来了

ps -ef | grep redis

在这里插入图片描述
上传redis-3.0.0.gem ,安装 ruby用于搭建redis集群的脚本

#执行脚本安装脚本
gem install redis-3.0.0.gem

在这里插入图片描述
(4)使用 ruby 脚本搭建集群。

#进入redis源码目录中的src目录  执行下面的命令
./redis-trib.rb create --replicas 1 192.168.43.10:7001 192.168.43.10:7002 192.168.43.10:7003 192.168.43.10:7004 192.168.43.10:7005 192.168.43.10:7006

附上轨迹记录:

[root@localhost src]# ./redis-trib.rb create --replicas 1 192.168.43.10:7001 192.168.43.10:7002 192.168.43.10:7003 192.168.43.10:7004 192.168.43.10:7005 192.168.43.10:7006
>>> Creating cluster
Connecting to node 192.168.43.10:7001: OK
Connecting to node 192.168.43.10:7002: OK
Connecting to node 192.168.43.10:7003: OK
Connecting to node 192.168.43.10:7004: OK
Connecting to node 192.168.43.10:7005: OK
Connecting to node 192.168.43.10:7006: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.43.10:7001
192.168.43.10:7002
192.168.43.10:7003
Adding replica 192.168.43.10:7004 to 192.168.43.10:7001
Adding replica 192.168.43.10:7005 to 192.168.43.10:7002
Adding replica 192.168.43.10:7006 to 192.168.43.10:7003
M: 158ae782725cc54e8cfff785f46a247cb00ea7e6 192.168.43.10:7001slots:0-5460 (5461 slots) master
M: 885f422e2ab7cf25e317f005069f89283ee61e95 192.168.43.10:7002slots:5461-10922 (5462 slots) master
M: 4cd039c3a9e92063f5e022ed3e00cf976154e580 192.168.43.10:7003slots:10923-16383 (5461 slots) master
S: 707db54b36af29cd60e1bc8710b1d6c1123785e4 192.168.43.10:7004replicates 158ae782725cc54e8cfff785f46a247cb00ea7e6
S: b6d094831ecdccd78fb9b7d33c3893bc4ced650f 192.168.43.10:7005replicates 885f422e2ab7cf25e317f005069f89283ee61e95
S: 9cc2de16400334f0a4037ac15e672704cdbba890 192.168.43.10:7006replicates 4cd039c3a9e92063f5e022ed3e00cf976154e580
Can I set the above configuration? (type 'yes' to accept): yes
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the clusteriting for the cluster to join..
>>> Performing Cluster Check (using node 192.168.43.10:7001)
M: 158ae782725cc54e8cfff785f46a247cb00ea7e6 192.168.43.10:7001slots:0-5460 (5461 slots) master
M: 885f422e2ab7cf25e317f005069f89283ee61e95 192.168.43.10:7002slots:5461-10922 (5462 slots) master
M: 4cd039c3a9e92063f5e022ed3e00cf976154e580 192.168.43.10:7003slots:10923-16383 (5461 slots) master
M: 707db54b36af29cd60e1bc8710b1d6c1123785e4 192.168.43.10:7004slots: (0 slots) masterreplicates 158ae782725cc54e8cfff785f46a247cb00ea7e6
M: b6d094831ecdccd78fb9b7d33c3893bc4ced650f 192.168.43.10:7005slots: (0 slots) masterreplicates 885f422e2ab7cf25e317f005069f89283ee61e95
M: 9cc2de16400334f0a4037ac15e672704cdbba890 192.168.43.10:7006slots: (0 slots) masterreplicates 4cd039c3a9e92063f5e022ed3e00cf976154e580
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.

集群搭建完成之后,
监控redis-1控制台
在这里插入图片描述
监控redis-2控制台
在这里插入图片描述
监控redis-3控制台
在这里插入图片描述
监控redis-4控制台
在这里插入图片描述
监控redis-5控制台
在这里插入图片描述
监控redis-6控制台
在这里插入图片描述

开放允许外界访问的端口号

vim /etc/sysconfig/iptables
添加内容如下
#redis-cluster
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7001 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7002 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7003 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7004 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7005 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 7006 -j ACCEPT

在这里插入图片描述
保存,

#重启防火墙,是配置生效
service iptables restart
#查看防火墙运行状态
service iptables status

在这里插入图片描述
在这里插入图片描述
在windows环境下,使用redis客户端进行远程连接redis集群

#进入reids目录,执行以下命令
redis-cli -h 192.168.43.10 -p 7001 -c
命令说明
-h指定连接reids的ip地址
-p指定远程连接redis的端口号
-c指定客户端连接的是redis集群,如果不添加-c参数,相当于连接的redis单机

在这里插入图片描述
测试验证一下

#往reidis集群中添加一个name为gblfy的值
set name gblfy

在这里插入图片描述
从图中可以看出,成功的将name为gblfy的值添加到了卡槽为【5798】,卡槽范围属于【5461-10922】的7002节点上了。
在这里插入图片描述

演示连接集群和单机的区别

实现思路
1.连接集群redis-1 7001端口,添加name值为gblfy
2.连接单机,尝试获取上一步添加到集群中的name为gblfy的值
预测:
1.假设 :将name值为gblfy储存在7002节点上
2.单机连接7001节点,应该获取不到添加到集群中name值为gblfy
3.退出,单机远程连接7002,可以正常从redis集群中获取到name值为gblfy
  • 测试场景1:
  • 验证单机远程连接集群,单机登录非该节点的redis服务端,从其他节点中获取值
    第一步:redis客户端远程连接redis集群
redis-cli -h 192.168.43.10 -p 7001 -c

在这里插入图片描述
第二步:向redis集群中添加name值为gblfy

192.168.43.10:7001> set name gblfy

在这里插入图片描述
第三步:退出集群,单机连接7001,尝试获取name值为gblfy

#退出集群
192.168.43.10:7001> quit
#单机连接redis
redis-cli -h 192.168.43.10 -p 7001
#从7001节点,尝试获取name值为gblfy
192.168.43.10:7001> get name

异常信息如下:

(error) MOVED 5798 192.168.43.10:7002

在这里插入图片描述

  • 测试场景2:
  • 验证单机远程连接集群,单机登录该节点的redis服务端,从该节点中获取值
    在这里插入图片描述

结果总结:测试和我们预测的结果是一样的,在windows环境下,通过redis客户端远程连接redis-cluster集群,然后,向redis-cluster集群中添加值,最后,通过远程连接redis单机,获取添加到集群的值,只有储存到该节点下的值可以正常获取到,非该节点下的场景,获取不到添加到集群的值。

演示截图总览:
在这里插入图片描述

下一篇:实战_05_SpringBoot整合redis单机版本https://blog.csdn.net/weixin_40816738/article/details/100658608

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/523310.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux网站渗透工具包,ubuntu下安装 kali linux 渗透工具包

相信用过linux系统的盆友都听说过kali linux 它是一个非常好的用于渗透测试的Linux发行版。但是如何在ubuntu下使用kali linux 的渗透工具嘞!LionSec开发出了一个python工具,叫做Katoolin,它可以让你在其他Linux发行版上使用Kali的全部工具。…

OCP China Day“登陆”,最新技术、方案吸睛!

戳蓝字“CSDN云计算”关注我们哦!作者 | 刘晶晶众所周知,OCP在2011年由Facebook发起成立,核心会员超过200家,其中更是包括Google、微软、Intel、IBM等企业,超过7000家企业参与了该社区的活动;2018年OCP非董…

SpringBoot集成Shiro前后端分离使用redis做缓存

文章目录一 、shiro介绍1、基础介绍2、基本功能点3、基本流程图二、 常用的权限管理表关系2.1. 表组成2.2. 表结构三、实战案例3.1. 案例介绍3.2. 依赖3.3. Shiro全局配置3.4. 自定义ShiroRealm3.5. ShiroUtils3.6. 自定义SessionManager3.7. 登录/出主方法3.8. 测试主方法四、…

边缘计算容器化是否有必要?

戳蓝字“CSDN云计算”关注我们哦!作者 | Steve来源 | 边缘计算中文社区简要由于容器有轻量级、安全性、秒级启动等优秀的特性,容器天然的轻量化和可移植性,非常适合边缘计算的场景,这一点边缘计算的厂家和开发者们都心知肚明。而且…

ipcp协议 Linux,Linux命令Man解释:PPPD(8) :点对点daemon协议

名称pppd - 点对点协定隐形程式(Point to Point Protocol daemon)语法pppd [ 选项 ] [ 终端设备名称(tty_name) ] [ 速率 ]描述这个点对点协定 (PPP) 提供一种在点对点串列线路上传输资料流(datagrams) 的方法。PPP 是由三个部份所组成的:一个在串列线路上封装(enca…

linux查看每个文件夹占空间大小

文章目录进入所在目录,执行以下命令:例:查看/app目录下面,每个目录的空间磁盘占比情况cd /app du -sh *

KubeCon 、 CloudNativeCon、Open Source Summit 2019三会交融,看点不断!

2019年6月24日,由CNCF和Linux基金会共同举办的KubeCon CloudNativeCon Open Source Summit 2019大会在上海世博中心盛大召开。来自全球各地的开源及云原生社区的采用者和技术专家齐聚于此,与参会者进一步探讨了云原生的教育及发展问题。 第一天大会以同…

c语言20152016真题及答案,2016年计算机二级《C语言》基础练习题及答案(15)

11[单选题]有以下程序程序运行后的输出结果是A.3B.9C.OD.-12参考答案:D参考解析:本题考查目的是运算符的结合性和优先级。首先计算a*a,结果为9,然后执行aa-9,即3-9,结果为-6,然后执行a(-6)(-6)&…

SpringBoot入门到精通_第2篇 _1分钟实战需求项目

接上一篇:SpringBoot入门到精通_第1篇 _核心概念 https://blog.csdn.net/weixin_40816738/article/details/94916051 文章目录一、实战SpringBoot项目1. 使用Spring Initializr快速创建Spring Boot应用2. 在线版本(任选其一即可)3. SpringBoot整合Spring MVC4. 创建…

云数据库精华问答 | 云数据库与其他数据库的关系

戳蓝字“CSDN云计算”关注我们哦!云数据库是部署和虚拟化在云计算环境中的数据库。云数据库是在云计算的大背景下发展起来的一种新兴的共享基础架构的方法,它极大地增强了数据库的存储能力,今天我们就一起来看看云数据库的精华问答!1Q&#x…

企业如何快速响应用户需求 且看云徙“数据+业务”双中台化简为繁

戳蓝字“CSDN云计算”关注我们哦!作者 |刘丹“自然界生存下来的,既不是四肢最强壮的,也不是头脑最聪明的,而是最有能力适应变化的物种。”这句至理名言放在商业文明的今天依然得以适用,有能力适应技术快速发展、业务需…

微服务架构之「 下一代微服务 Service Mesh 」

戳蓝字“CSDN云计算”关注我们哦!作者 | 奎哥来源 | 不止思考Service Mesh 被大家称为下一代的微服务,是微服务领域的一颗新星,被大家讨论的非常多。我在大家的讨论中,还看到有人说 “目前的微服务架构我都没学会呢,现…

C语言编程中线性表的顺序表示,数据结构C语言实现----线性表的顺序表示和实现...

线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的数据元素。在高级程序设计语言中,通常都用数组来描述数据结构中的顺序存储结构。同时,由于线性表的长度可变,且所需最大存储空间随问题不同而不同,在C语言中可用动…

SpringBoot入门到精通_第5篇 _SpringBoot Actuator监控

接上一篇:SpringBoot入门到精通_第4篇 _开发三板斧 https://blog.csdn.net/weixin_40816738/article/details/101097161 文章目录一、 SpringBoot Actuator 概念1. 是什么?2. 如何整合SpringBoot Actuator?二、 SpringBoot Actuator 实战2.1.…

反转!美光、英特尔等多家美企恢复对华为供货;首例云服务器存储侵权案改判,阿里云不担责;英国政府拟严格审查Libra……...

戳蓝字“CSDN云计算”关注我们哦!嗨,大家好,重磅君带来的【云重磅】特别栏目,如期而至,每周五第一时间为大家带来重磅新闻。把握技术风向标,了解行业应用与实践,就交给我重磅君吧!重…

从达标到卓越 —— API 设计之道

摘要: 新技术层出不穷,长江后浪推前浪。在浪潮褪去后,能留下来的,是一些经典的设计思想。 在前端界,以前有远近闻名的 jQuery,近来有声名鹊起的 Vue.js。这两者叫好又叫座的原因固然有很多,但是…

SpringBoot入门到精通_第6篇 _必知必会

接上一篇:SpringBoot入门到精通_第5篇 _SpringBoot Actuator监控 https://blog.csdn.net/weixin_40816738/article/details/101097428 文章目录一、SpringBoot 配置管理1. 配置管理3种方式1.1. 以.properties为后缀名1.2. 以.yml/.yaml为后缀名(建议使用)2. Spring …

“刺激的”2017双11 阿里安全工程师首度揭秘智能风控平台MTEE3

摘要: “太刺激了,太刺激了!如果那个48%真出问题,整个安全部的双11就可能是3.25!” “太刺激了,太刺激了!如果那个48%真出问题,整个安全部的双11就可能是3.25!”知命推了…

你相信逛B站也能学编程吗?

戳蓝字“CSDN云计算”关注我们哦!作者 | 徐麟来源 | 数据森麟作者:徐麟,某互联网公司数据分析狮,个人公众号数据森麟(id:shujusenlin)前言很多人提到B站,首先想到的就会是二次元或者…

创建小程序

注册账号:https://mp.weixin.qq.com/