Redis集群模式搭建

最近学习springboot集成redis,因此本人打算在虚机上搭建一套redis集群

查阅相关资料,Redis集群中要求必须是奇数节点,所以至少要有三个节点。但是每个节点还需要一个备份节点,因此redis集群需要最低配置6个节点。

以下是本人在centos7上搭建redis集群的记录:

环境:centos7(条件有限,所以本人拟在一台服务器上搭建redis集群6个节点,以下依赖包为redis集群提供支持,本人搭建centos7时,安装的最纯净版,各种工具包和依赖包都没有,所以需要再安装一变。)

           redis版本:redis-5.0.7.tar

           gcc版本: gcc.x86_64 0:4.8.5-39.el7(作为依赖被安装:cpp.x86_64 0:4.8.5-39.el7     glibc-devel.x86_64 0:2.17-292.el7                                glibc-headers.x86_64 0:2.17-292.el7     kernel-headers.x86_64 0:3.10.0-1062.12.1.el7     libmpc.x86_64 0:1.0.1-3.el7    mpfr.x86_64 0:3.1.1-4.el7)

           gcc-c++版本:gcc-c++.x86_64 0:4.8.5-39.el7(作为依赖被安装:libstdc++-devel.x86_64 0:4.8.5-39.el7)

           zlib版本:ruby.x86_64 0:2.0.0.648-36.el7(作为依赖被安装:
  libyaml.x86_64 0:0.1.4-11.el7_0    ruby-irb.noarch 0:2.0.0.648-36.el7  ruby-libs.x86_64 0:2.0.0.648-36.el7 rubygem-bigdecimal.x86_64 0:1.2.0-36.el7 rubygem-io-console.x86_64 0:0.4.2-36.el7
  rubygem-json.x86_64 0:1.7.7-36.el7 rubygem-psych.x86_64 0:2.0.0-36.el7 rubygem-rdoc.noarch 0:4.0.0-36.el7  rubygems.noarch 0:2.0.14.1-36.el7)

 

搭建redis步骤:

1.ftp上传官网下载的redis离线安装包:redis-5.0.7.tar.gz,上传路径 /usr/local

2.解压安装包:tar -zxvf redis-5.0.7.tar.gz

3.重命名解压目录:mv redis-5.0.7 redis

4.安装redis:cd /usr/local/redis

                    make(Linux 下 make 命令是系统管理员和程序员用的最频繁的命令之一。管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。本文我们将用一些实例来讨论 make 命令背后的工作机制。)

                     make install(安装编译/usr/local/redis/src)

5检查安装:cd /usr/local/bin,查看redis可执行脚本文件是否已经生成

Redis集群模式搭建

如果已经生成,则进行下一步。否则需要手动从解压目录拷贝上图文件至/usr/local/bin

6.创建6个节点的目录:mkdir -p /usr/local/redis/redis-cluster/{7000,7001,7002,7003,7004,7005}

7.创建redis日志目录:mkdir /usr/local/redis/redis-log

8.创建每个节点各自的配置文件:cd /usr/local/redis/redis-cluster/7000,nano redis.conf

#-------------------------------------------------配置内容--------------------------------------------------------------

#端口7000,7001,7002,7003,7004,7005与目录对应
port    7000 
#默认ip为127.0.0.1,需要改为节点部署机器可访问的ip,否则创建集群时无法访问对应的端口,无法创建集群
bind    192.168.1.201 (本人虚拟机为桥接,通过配置etho网卡设置了静态ip,ip可通过ifconfig查看)
#redis后台运行,如果配置为no,当远程连接窗口(如xshell)断开,redis服务也会随之关闭
daemonize    yes 
#开启集群
cluster-enabled    yes 
#集群的配置,配置文件首次启动自动生成7000,7001,7002,7003,7004,7005
cluster-config-file nodes_7000.conf
#请求超时,默认15秒,可自行设置
cluster-node-timeout    15000 
#开启aof持久化模式,每次写操作请求都追加到appendonly.aof文件中
appendonly    yes
#每次有写操作的时候都同步
appendfsync    always 
#redis服务日志
logfile    "/usr/local/redis/redis-log/redis_7000.log" 
#pidfile文件对应7000,7001,7002,7003,7004,7005
pidfile    /var/run/redis_7000.pid

#以上标绿的配置,需根据节点的不同更改相应的配置

由于一个一个配置比较麻烦,因此特写了shell脚本来处理,完成配置文件一键生成

创建自定义脚本目录 mkdir /usr/local/redis/redis_cluster/shell , nano redis_autoConfig.sh

Redis集群模式搭建

因为要搭建的是集群模式,所以需要启动所有节点,一个一个起比较麻烦,因此也通过shell脚本来启停

 nano redis-start.sh

Redis集群模式搭建

 nano redis-stop.sh

Redis集群模式搭建

由于本人是一台服务器搭建六个节点,所以停止脚本中-h 指定的ip写死为虚机linux静态ip

然后将上述三个脚本赋予执行权限

chmod 777 redis*

执行自动配置脚本,生成各节点配置文件

./redis_autoConfig.sh

然后各节点配置文件就生成了

检验查看:可写for循环来查看各节点配置文件

Redis集群模式搭建

ok,配置文件搞定。

9.启动各节点服务:.sh /usr/local/redis/redis-cluster/shell/redis-start.sh

查看是否启动成功

Redis集群模式搭建

如上图所示,各节点进程已经成功启动,且监听端口为自定义生成配置中的端口。

10.创建redis集群

根据官网描述,redis-trib.rb这个工具可以帮助我们快速构建redis集群,该工具存在于解压目录(该工具在需要搭建redis集群的任意服务器上仅且运行一次)。

cd /usr/local/redis/src,ll *redis*

Redis集群模式搭建

可以看到该工具在上图位置

执行命令开始创建redis集群:redis-cli --cluster create 192.168.1.201:7000 192.168.1.201:7001 192.168.1.201:7002 192.168.1.201:7003 192.168.1.201:7004 192.168.1.201:7005 --cluster-replicas 1

Redis集群模式搭建

根据截图显示,该工具已帮我们自动配置好了redis集群主从节点,红框中问是否接受该工具的默认配置,如无特殊要求,写yes即可

Redis集群模式搭建

选完yes,显示redis配置成功。

11.验证redis集群

登陆redis客户端:redis-cli -c -p 7000 -h 192.168.1.201

Redis集群模式搭建

如上图,通过简单的get,set操作验证了redis集群搭建成功,我连接的是7000的这个节点,set操作也是7000节点,但在get操作时,redis切到了7001节点上,更加从侧面应证了redis集群模式搭建成功