CentOS7.6 多机器安装redis 6 cluster集群
〇、环境准备
因为本例是在内网进行的,所以需要环境准备步骤,如果你的机器能直接访问外网,请直接看第一节
0.1、设置上网代理
首先确认服务器能连外网进行yum安装,如果不能那可能是需要设置代理才行
在/etc/profile里增加代理
vim /etc/profile
首行增加以下代码
export http_proxy=http://xxx.xxx.xxx.xxx:xxxx
使其生效
source /etc/profile
0.2、更换yum Repo源
备份原镜像
cd /etc/yum.repos.d
mkdir "backup"
mv *.repo ./backup
下载阿里云的Base源和EPEL源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
安装一下这个源
yum -y install centos-release-scl
清理和生成缓存
yum clean all
yum makecache
一、安装redis
本例子使用的是redis-6.0.6版本
redis Cluster集群需要最少3个节点,也就是三台服务器,别问为什么,问就是查百度。
然后每台机器上先按以下步骤安装一下
1.1、安装redis依赖tcl
不安装这个redis安装不了(这个我没有验证,有小伙伴验证后希望告知谢谢!)
这里用的是root用户,所以下载目录是在/root下
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz
tar -xzvf tcl8.6.1-src.tar.gz
mv tcl8.6.1 /usr/local
cd /usr/local/tcl8.6.1/unix/
./configure
make && make install
1.2、安装redis
自己去官网http://www.redis.cn/download.html 上找一下你需要的版本,然后依次执行下方命令
wget http://download.redis.io/releases/redis-6.0.6.tar.gz
tar -xzvf redis-6.0.6.tar.gz
cd redis-6.0.6
make
你在make的时候有可能会报一堆错误如图:
那就升级一下gcc
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
然后清理一下make的信息,然后重新make
make clean
make
看到红框里的内容说明编译成功了,然后就可以安装了
安装到/usr/local/redis-6.0.6目录下
make install PREFIX=/usr/local/redis-6.0.6
看到图里的红框,说明安装成功了
然后启动看看
cd /usr/local/redis-6.0.6/bin
./redis-server
看到下图说明启动成功了
如果你的服务器根本就没有gcc,别问这是个啥,问就是自己百度
有可能报 /bin/sh: cc: command not found
那自己装gcc, gcc依赖了很多东西,有些包可能系统已经 装了,有些没有,防止出意外,最好都走一遍
yum -y install cpp
yum -y install binutils
yum -y install glibc
yum -y install glibc-kernheaders
yum -y install glibc-common
yum -y install glibc-devel
yum -y install gcc
yum -y install make
yum -y install tcl
1.3、测试redis
重开一个ssh链接你的redis服务器,用redis-cli测试一下
redis-cli
看到下图说明没有问题了
1.4、配置redis.conf
上一步需要重开一个ssh链接,原因是现在的redis服务还是前端启动的,如果关闭ssh链接,那redis服务也关闭了,需要修改一下配置
找到你解压的redis目录,本例是在/root下
cd /root/redis-6.0.6/
vim redis.conf
将 bind 127.0.0.1 ::1 这一行注释掉。指定的网段才能远程访问这个redis
将 protected-mode 设置成no(默认是yes阻止了远程访问,在redis3.2.3版本后)
将 daemonize 设置成 yes(表明需要在后台运行)
然后将配置文件放到安装目录,使用配置文件重新启动redis
启动前,使用ctrl+c关掉前端启动的redis
cp redis.conf /usr/local/redis-6.0.6/bin
cd /usr/local/redis-6.0.6/bin
./redis-server redis.conf
看到下图说明启动完成
到这里单机版的redis就安装完成了。
1.5、redis集群搭建
Redis集群至少需要3个节点
要保证集群的高可用,需要每个节点都有从节点,那Redis集群就需要最少6个节点
先用3个节点试试,分别在三台机器上按照以上步骤安装redis,安装完成是这样的
172.17.132.13 6379 /usr/local/redis-6.0.6/bin/redis-server /usr/local/redis-6.0.6/bin/redis-server/redis.conf
172.17.132.34 6379 /usr/local/redis-6.0.6/bin/redis-server /usr/local/redis-6.0.6/bin/redis-server/redis.conf
172.17.132.243 6379 /usr/local/redis-6.0.6/bin/redis-server /usr/local/redis-6.0.6/bin/redis-server/redis.conf
redis5以上的版本可以直接使用redis-cli命令进行集群的创建
1.5.1 配置每个节点
我们只准备三个节点,网上一般会建议弄6个,先弄三个试试,只是不是高可用,测试的无所谓
创建集群节点,本步骤内所有操作均需在每台机器上执行
mkdir /usr/local/redis-6.0.6/cluster/redis7001
cp /usr/local/redis-6.0.6/bin/* /usr/local/redis-6.0.6/cluster/redis7001
删除redis7001目录下的快照文件dump.rdb, 修改集群节点的redis配置文件
rm -rf /usr/local/redis-6.0.6/cluster/redis7001/dump.rdb
vim /usr/local/redis-6.0.6/cluster/redis7001/redis.conf
具体修改配置内容如下
port 7001 #改为设定的端口
daemonize yes #后台启动
cluster-enabled yes #启动集群模式
#cluster-config-file nodes-7001.conf #集群内部配置文件,改掉端口号 这个不用管
cluster-node-timeout 15000 #节点超时时间,单位:毫秒
#appendonly yes #持久化,这个我没开
1.5.2 启动集群节点
停掉原来的redis服务,然后启动所有集群节点
/usr/local/redis-6.0.6/cluster/redis7001/redis-server /usr/local/redis-6.0.6/cluster/redis7001/redis.conf
1.5.3 创建redis cluster集群
redis5以上的版本可以直接使用redis-cli命令进行集群的创建
redis-cli --cluster create 172.17.132.13:7001 172.17.132.34:7001 172.17.132.243:7001 --cluster-replicas 0
其中–cluster-replicas 1 意味着我们需要为每个创建的主服务器创建一个副本(从节点,高可用),0就没有副本。三个节点就用0,六个节点就用1
出现如下图所示即标识集群创建成功
我们这次创建的是只有3个主节点的集群,没有从节点,如果你想搞一个高可用的,每个主节点带一个副本(从节点)。那就每台机器上再搞一个/usr/local/redis-6.0.6/cluster/redis7002的文件夹
其中redis.conf中的port配置成7002,创建集群时将所有的7002节点都加上即可
1.5.4 测试集群是否工作正常
测试一下,直接用命令行即可测试,出现红框里这种每个节点都访问到了即表示集群工作正常
注意:一定要加上-c,不然节点之间是无法自动跳转的!
最后,加上两条redis集群基本命令,使用方法见图
1.查看当前集群信息
cluster info
2.查看集群里有多少个节点
cluster nodes
1.6 结束
搭建+写文档一共用了两天时间,终于算是弄完了,网上大部分的文章都是redis5以前的教程,使用的都是ruby工具(redis-trib.rb)创建的集群。
本例使用的是redis6,然后网上也没有找到很多资料,集群的创建大部分都是研究的官网文档,这里放一下链接,可自行查看
redis官网文档地址
整个过程其实挺简单,本篇主要针对入门级别的小伙伴,插入了很多图片,所以显得冗长,希望大家多多理解,如果不当之处,还望及时指正~