redis cluster集群以及整合springboot

一.创建集群目录

mkdir /usr/local/redis-cluster  #创建集群文件目录
cd  /usr/local/redis-cluster/  #进入集群文件目录
mkdir -p 8001/data 8002/data 8003/data 8004/data 8005/data 8006/data  #创建集群存放数据目录
说明:
这里用一台服务器模拟reids cluster 集群,集群的端口号从8001-8006表示6个不同的redis

二.安装redis

1.下载redis安装包
   wget http://download.redis.io/releases/redis-3.2.9.tar.gz
2.解压redis
   tar -zxvf redis-3.2.9.tar.gz
3.安装redis
   cd redis-3.2.9
   make  
   cd src
   make install PREFIX=/usr/local/redis  
4.将配置文件移动到安装目录下
   cd ../
   mkdir /usr/local/redis/etc
   mv redis.conf /usr/local/redis/etc
5. 将安装好的redis,复制一个新的实例到集群8001目录
   cp -r /usr/local/redis    /usr/local/redis-cluster/8001
6.修改配置文件
   vi  /usr/local/redis-cluster/8001/redis/etc/redis.conf   #进入redis8001配置文件
   port 8001    #第一个reids端口号
   daemonize yes  #后台运行模式
   bind 172.25.62.102  #绑定当前机器 IP
   dir /usr/local/redis-cluster/8001/data/   #数据文件存放位置
   pidfile /var/run/redis_8001.pid   #pid 8001和port要对应
   cluster-enabled yes  #启动集群模式
   cluster-config-file nodes8001.conf  #8001和port要对应
   cluster-node-timeout 15000  #超时时间
   appendonly yes  #以aof方式持久化数据

三.创建bin目录,并将集群脚本复制到该目录

cd /usr/local/redis-cluster   
mkdir bin  #创建bin目录
cd /home/redis/redis-3.2.9/src   #刚刚redis安装的解压目录,每个人的可能一样
cp mkreleasehdr.sh redis-benchmark redis-check-aof  redis-cli redis-server redis-trib.rb /usr/local/redis-cluster/bin  #复制脚本

四.复制另外5个redis节点

 1.复制5个节点
    \cp -rf /usr/local/redis-cluster/8001/*   /usr/local/redis-cluster/8002
    \cp -rf /usr/local/redis-cluster/8001/*   /usr/local/redis-cluster/8003
    \cp -rf /usr/local/redis-cluster/8001/*   /usr/local/redis-cluster/8004
    \cp -rf /usr/local/redis-cluster/8001/*   /usr/local/redis-cluster/8005
    \cp -rf /usr/local/redis-cluster/8001/*   /usr/local/redis-cluster/8006
    
2.分别修改5个节点的配置信息
    vi /usr/local/redis-cluster/8002/redis/etc/redis.conf   #进入8002redis配置文件
    %s/8001/8002   #通过搜索命令,全局替换配置文件中的8001,改成8002
    vi /usr/local/redis-cluster/8003/redis/etc/redis.conf
    %s/8001/8003   #通过搜索命令,全局替换配置文件中的8001,改成8003
    vi /usr/local/redis-cluster/8004/redis/etc/redis.conf
    %s/8001/8004   #通过搜索命令,全局替换配置文件中的8001,改成8004
    vi /usr/local/redis-cluster/8005/redis/etc/redis.conf
    %s/8001/8005   #通过搜索命令,全局替换配置文件中的8001,改成8005
    vi /usr/local/redis-cluster/8006/redis/etc/redis.conf
    %s/8001/8006   #通过搜索命令,全局替换配置文件中的8001,改成8006
    说明:以下是被修改的地方
    port 8001
    dir /usr/local/redis-cluster/8001/data/
    cluster-config-file nodes-8001.conf
    pidfile /var/run/redis_8001.pid

五.启动8001-8006六个节点redis

cd /usr/local/redis-cluster/bin  #进入redis集群 bin目录
./redis-server  /usr/local/redis-cluster/8001/redis/etc/redis.conf  #启动8001
./redis-server  /usr/local/redis-cluster/8002/redis/etc/redis.conf  #启动8002
./redis-server  /usr/local/redis-cluster/8003/redis/etc/redis.conf  #启动8003
./redis-server  /usr/local/redis-cluster/8004/redis/etc/redis.conf  #启动8004
./redis-server  /usr/local/redis-cluster/8005/redis/etc/redis.conf  #启动8005
./redis-server  /usr/local/redis-cluster/8006/redis/etc/redis.conf  #启动8006

查看一下redis进程
ps -ef|grep redis
在这里插入图片描述

六.安装集群需要软件

  yum install ruby
  yum install rubygems
  *redis-3.2.1.gem下载地址: https://rubygems.org/gems/redis/versions/3.2.1* 
  gem install -l redis-3.2.1.gem   #安装redis-3.2.1.gem
  说明:
  由于 Redis 集群需要使用 ruby 命令,所以我们需要安装 ruby 和相关接口

七.创建集群环境

  /usr/local/redis-cluster/bin/redis-trib.rb create --replicas 1 172.25.62.102:8001 172.25.62.102:8002 172.25.62.102:8003 172.25.62.102:8004 172.25.62.102:8005 172.25.62.102:8006
  说明:replicas 1 为每个主节点分配一个从节点,这里创建的是3主3从的集群模式

下图表示安装成功界面
在这里插入图片描述
至此,redis cluster集群已经安装完毕。

八.测试一下redis cluster集群是否部署成功

cd   /usr/local/redis-cluster/bin  #进入集群bin目录
./redis-cli -c -h 172.25.62.102 -p 8001   #连接8001节点, -c 表示进入集群环境
说明:Redis 集群采用了P2P的模式,完全去中心化。Redis 把所有的 Key 分成了16384 个 slot,每个 Redis 实例负责其中一部分 slot 。集群中的
所有信息(节点、端口、slot等),都通过节点之间定期的数据交换而更新。
Redis 客户端可以在任意一个 Redis 实例发出请求,如果所需数据不在该实例中,通过重定向命令引导客户端访问所需的实例。

在这里插入图片描述
输入cluster nodes查看集群节点信息
在这里插入图片描述
从图中可以看到:
a.8001 为主节点,其从节点为8004,其槽的分布为0-5460
b.8002 为主节点,其从节点为8005,其槽的分布为5461-10922
c.8003 为主节点,其从节点为8006,其槽的分布为10923-16383

redis cluster集群在以下情况下判断集群宕机:
a.当超过半数的主节点宕机
b.某个主节点和下面的从节点全部宕机

九.springboot整合redis cluster集群

1.新建springboot项目,引入redis依赖
  <dependency>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-data-redis</artifactId>
	</dependency>
2.配置文件添加redis cluster集群信息
  spring.redis.database=0
  spring.redis.jedis.pool.max-active=8
  spring.redis.jedis.pool.max-wait=-1
  spring.redis.jedis.pool.max-idle=8
  spring.redis.jedis.pool.min-idle=0
  spring.redis.timeout=10000
  spring.redis.cluster.nodes=172.25.62.102:8001, 172.25.62.102:8002, 172.25.62.102:8003, 172.25.62.102:8004, 172.25.62.102:8005, 172.25.62.102:8006

简单测试一下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ok了,redis cluster 集群和springboot整合已经完成了。

猜你喜欢

转载自blog.csdn.net/qq_35859844/article/details/87401372