Redis集群的离线安装以及原理理解
本文主要是记录一下Redis集群在linux系统下离线的安装步骤,毕竟在生产环境下一般都是无法联网的,Redis的集群的Ruby环境安装过程还是很麻烦的,涉及到很多的依赖的安装,所以写了一个文章来进行记录。本文分为两部分,第一部分先通过原生命令的安装来实现redis集群的部署,通过原生命令的安装对于了解redis集群的实现原理有很大的帮助,第二部分通过官方工具Ruby来进行Redis集群的安装,通过Ruby安装Redis集群的时候主要是搭建好Ruby环境,真正Redis集群的安装配置通过Ruby还是很简单的。
一、通过原生命令安装Redis集群(仅做理解Redis集群原理使用)
1.配置开启所需要的Redis节点
因为这里只是做一个简单的Redis集群原理演示,所以假设此时Redis服务已经安装完毕,在config文件夹下创建六个redis.conf配置文件,分别为redis-7000.conf、redis-7001.conf、redis-7002.conf、redis-7003.conf、redis-7004.conf、redis-7005.conf。其内容如下:
port ${port} daemonize yes dir "/opt/redis/redis/data/" dbfilename "dump-${port}.rdb" logfile "${port}.log" cluster-enabled yes //开启节点的集群功能 cluster-config-file nodes-${port}.conf cluster-require-full-coverage no cluster-node-timeout 15000
依次启动六个redis后台服务
redis-server redis-7000.conf
redis-server redis-7001.conf
redis-server redis-7002.conf
redis-server redis-7003.conf
redis-server redis-7004.conf
redis-server redis-7005.conf
ps -ef | grep redis查看启动情况:
2.通过集群命令meet完成节点之间的相互通信
meet:cluster meet ip port
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7001
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7002
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7003
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7004
redis-cli -h 127.0.0.1 -p 7000 cluster meet 127.0.0.1 7005
通过端口为7000的节点,其他的节点也可以相互感知到对方的存在,然后每两个节点之间都会通信。
验证:登录端口号为7000节点以后,分别输入cluster nodes和cluster info 命令。
3.指派槽
完成了节点之间的通信以后,就需要给每个主节点分配虚拟槽,一共存在16384个slot,redis节点之间互相知道哪个槽在哪个节点上,如果数据访问到了不属于自己的槽的redis,redis会告诉数据应该去访问哪个redis
指派槽的命令:cluster addslots slot[slot...]
redis-cli -h 127.0.0.1 -p 7000 cluster addslots {0...5641}
redis-cli -h 127.0.0.1 -p 7001 cluster addslots {5642...10922}
redis-cli -h 127.0.0.1 -p 7002 cluster addslots {10923...16383}
在这里发现使用addslots 只能一个一个输入,感觉非常扯,使用数组的方式redis会报错,用网上的解决办法是将大括号里的 三个点改为两个点,我试了试不行的,如果有什么好的解决办法可以提供一下。
4.配置节点的主从关系
cluster replicate node-id
redis-cli -h 127.0.0.1 -p 7003 cluster replicate ${node-id-7000}
redis-cli -h 127.0.0.1 -p 7004 cluster replicate ${node-id-7001}
redis-cli -h 127.0.0.1 -p 7005 cluster replicate ${node-id-7002}
到此通过原生命令安装Redis集群就已经完成了,中间的步骤存在问题,无法分配slots,但是可以帮助简单的理解一下由Redis的单节点到Redis的集群都需要做什么工作。
二、通过Ruby离线安装Redis集群
1.安装环境以及安装包说明
系统:Centos7(安装的时候选择安装了gcc) 安装包:redis-4.0.6.tar.gz //redis 的安装包 ruby-2.5.6.tar.gz //集群搭建需要Ruby环境 rubygems-3.0.6.zip //redis集群需要的ruby插件,rubygems是ruby的一个包管理工具,通过rubygems安装redis-3.2.2.gem zlib-1.2.11.tar.gz //可能缺少的基础环境zlib openssl-1.0.2t.tar.gz //可能缺少的基础环境openssl
2.安装步骤
(1)解压编译redis
mkdir /usr/local/redis //创建redis工作目录 cp redis-4.0.6.tar.gz /usr/local/redis //将redis的安装包拷贝到redis目录下 cd /usr/local/redis //进去redis文件下 tar -vxf redis-4.0.6.tar.gz //解压缩 ln -s redis-4.0.6 redis //建立软连接 cd redis //进入redis目录下 make && make install //编译安装redis
(2)创建集群目录
cd /usr/local/redis mkdir redis_cluster //在redis安装目录下创建redis_cluster目录 mkdir redis700{0,1,2,3,4,5}//批量创建六个redis节点工作目录,三主三从。
(3)配置redis.conf