Redis集群(Cluster)演示——超详细演示步骤+Spring Boot演练

本文详细介绍了Redis 5.0集群的搭建过程,包括集群原理、分布式集群规划和配置步骤。通过在Centos7上安装Redis、创建集群,并在Spring Boot应用中进行集成演示,展示了如何增加、删除主从节点,以及如何配置Redis集群在应用中的使用。
摘要由CSDN通过智能技术生成

在这里插入图片描述
本文所用的Redis是5.0.8所以和旧版的4.0.X不同的地方在于创建集群的方式的变化

所用系统:Centos7.7 64位

本文设置的统一密码为:shunleite

Spring Boot 2.0+

一、集群的原理

在Redis集群中,所有的Redis节点彼此互联,节点内部使用的二进制协议优化传输速度和带宽。

当一个节点挂掉后,集群中超过半数的节点坚持失效时才认为该节点已失效。Redis集群中的任意

节点都以和Java客户端连接。Redis集群上的数据分配是才用哈希槽(HASH SLOT),Redis集群内置

了16384个哈希槽,当有数据需要储存时,Redis会首先使用CRC16算法对Key进行计算,将计算获得

的结果对16384取余,这样每一个key都会对应一个取值在0~16383之间的哈希槽,Redis则根据这个

余数将该条数据储存到对应的Redis节点上,程序猿们就可根据每个Redis实例的性能来调整每个Redis

实例上哈希槽的分布范围

二、分布式集群规划

需要了解一些概念:
一个master(主)可以拥有多个slave(从),而一个slave(从)只能拥有一个master(主)
另外官方说明每个集群中至少需要三个主master才能正常运行
本案例采取每个服务器上对应的每个端口来区别每一个不同的Redis服务器

主节点:111.67.194.61:6661,111.67.194.60:6662,111.67.194.63:6663

从节点:111.67.194.64:6664,111.67.194.65:6665,111.67.202.206:6666

两个用来测试添加主从数据库的节点: 111.67.194.70:6667(主),111.67.194.108:6668(从)

三、Redis集群配置环节

1.安装集群管理工具(集群老大哥服务器111.67.194.61由它配置Ruby环境,也只在这台)

因为Redis集群工具依赖Ruby环境,首先需要安装Ruby环境,又因为centos7 yum库中
的默认的Ruby版本太低,所以就搞个便捷的RVM工具(以下步骤是下载配置rvm公钥)

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3
#上面个木有成功就下面那个
gpg2 --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -L get.rvm.io | bash -s stable
source /usr/local/rvm/scripts/rvm

看下RVM是否安装成功

rvm list known

如图所示出现了绿色那就成功了
在这里插入图片描述
选个比较稳定的版本安(教程所出时间为2020/4/5)
在这里插入图片描述

rvm install 2.6.5

在这里插入图片描述
最后安装Redia依赖

gem install redis
2.安装Redis:

①下载Redis

wget http://download.redis.io/releases/redis-5.0.8.tar.gz

没有wget命令的话就需要安装,然后再执行上面命令

yum install wget

②安装Redis
先创建个redisCluster文件夹,将下载的文件移动过去然后再安装

mkdir redisCluster
cp -f ./redis-5.0.8.tar.gz ./redisCluster
cd redisCluster
tar -zxvf redis-5.0.8.tar.gz
cd redis-5.0.8
make MALLOC=libc
make install

③其它每台各进行第②小步(该操作是每个服务器都必须要的操作)

然后在每台服务器(包括老大哥服务器111.67.194.61)的redisCluster下创建一个文件夹(以便于生产后面在单台上添加)
分别为文件夹6661 6662 6663 6664 6665 6666 (与前面规划部分一致)
另外每个文件夹下面都需要把上层目录中redis-5.0.8目录下的redis.conf文件复制一份到该目录

cp -f ../redis-5.0.8/redis.conf ./

接着对每台服务器666x文件夹下的redis.conf的配置进行修改,所修改的配置如下(是修改不是添加)

port 6661
#bind 127.0.0.1
cluster-enabled yes
cluster-config-file nodes-6661.conf
protected no
daemonize yes
requirepass shunleite
masterrauth shunleite

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
提一下:如果使用vi的话那你就需要/字符串模式慢慢找然后修改

    第一为该节点端口与文件夹名一一对应

    第二行是将bind部分注释掉,因为默认是本地乱接,注释掉就可以外网连接Redis了

    第三行表示开启集群

    第四行表示该集群节点的配置文件(注意nodes-666x.conf格式配置方便管理)

    第五行就是关闭保护毕竟你第七行用了密码

    第六行表示允许Redis后台运行

    第七行就是设置密码了

    第八行因为第七行设置了密码所以他就需要个密码认证

④开启Redis实例

redis-server /root/redisCluster/6661/redis.conf
redis-server /root/redisCluster/6662/redis.conf
redis-server /root/redisCluster/6663/redis.conf
redis-server /root/redisCluster/6664/redis.conf
redis-server /root/redisCluster/6665/redis.conf
redis-server /root/redisCluster/6666/redis.conf

⑤为了能够远程连接上Redis,还需要关闭防火墙(或者开启相应端口)

systemctl stop firewalld.service
systemctl disable firewalld.service

在这里插入图片描述
回到老大哥服务器(111.67.194.61)后切到redisCluster目录下

3.创建集群(该步骤在老大哥服务器运行)
    提一下:因为设置了密码,一般来说,Redis5.0.x以下的版本是需要将redis-trib.rb文件复制到redisCluster目录下的

    然而我们用的不是(嘻嘻)如果是就需要移

    而且还需修改复制后的redis-trib.rb文件,将@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60)这行

    修改成@r = Redis.new(:host => @info[:host], :port => @info[:port], :timeout => 60, :password=>"shunleite")

    然后操作就把后面的redis-cli -a shunleite --cluster的部分改成./redis-trib.rb(在你redisCluster目录下)即可(虽然有些细微的不一样比如删除啥

    子,但大多一样,毕竟官方只是进行移植集成操作)

创建集群

redis-cli -a shunleite --cluster create 111.67.194.61:6661 111.67.194.60:6662 111.67.194.63:6663 111.67.194.64:6664 111.67.19
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值