Centos7.6.1810离线安装Redis5.0.14集群部署

7 篇文章 1 订阅

写给小白

redis5及以后版本源代码使用的是C语言,安装ruby的文章不用看了。

版本说明

准备2台实体机机器

10.xx.xx.21 redis MServ-redis1
10.xx.xx.22 redis MServ-redis2

2台均为centos,版本:7.6.1810

Redis版本:5.0.14

在/opt下创建redis_cluster目录 用于存放集群节点

下载相关的包

1、选择合适的稳定版本: https://redis.io/download

​ redis-5.0.14.tar.gz

2、gcc,gcc++相关的rpm包 ,推荐2个好用的地址:http://rpmfind.net/linux/RPM/index.html 或者http://rpm.pbone.net/
Centos7.6.1810离线安装Redis5.0.14相关的rpm包
在这里插入图片描述
在这里插入图片描述

准备

安装思路:

尝试安装核心包(redis-5.0.14.tar.gz,gcc-4.8.5-39.el7.x86_64.rpm), 核心包安装不了, 根据详细的提示进行下载相关的依赖包解决。

gcc安装

centos 默认是预装了glibc 和glib-common的【先说明坑】 。查看是否安装命令 rpm -qa |grep glibc

尝试安装 rpm -ivh xxx.rpm (xxx是具体的rmp包名称)

rpm -ivh gcc-4.8.5-39.el7.x86_64.rpm 看看需要哪些 就安装那些。

第1步  mpfr-3.1.1-4.el7.x86_64.rpm
第2步  libmpc-1.0.1-3.el7.x86_64.rpm
第3步  cpp-4.8.5-39.el7.x86_64.rpm
第4步  kernel-headers-3.10.0-1127.13.1.el7.x86_64.rpm
第5步  glibc-headers-2.17-260.el7.x86_64.rpm  坑:跟centos版本相关 版本固定  
第6步  glibc-devel-2.17-260.el7.x86_64.rpm   坑: 版本固定 小版本都不行    这个2个
第7步  libgomp-4.8.5-39.el7.x86_64.rpm
第8步  libgcc-4.8.5-39.el7.x86_64.rpm  --replacefiles
第9步  尝试安装gcc-4.8.5-39.el7.x86_64.rpm
第10步 gcc -v  版本查看

在这里插入图片描述

gcc++安装

第11步  gcc-c++-4.8.5-39.el7.x86_64.rpm 可能会失败
第12步  如果上一步失败,先安装 rpm -ivh libstdc++-devel-4.8.5-39.el7.x86_64.rpm  
   	   需要先安装 libstdc++-4.8.5-39.el7.x86_64.rpm
       再尝试gcc-c++ 
       成功

在这里插入图片描述

glibc离线安装

安装过glibc的小伙伴,肯定遇到过以下情况。【错误复现:依赖检测失败】:

glibc = 2.17-307.el7.1 被 glibc-headers-2.17-307.el7.1.x86_64 需要

glibc-common = 2.17-317.el7 被 glibc-2.17-317.el7.x86_64 需要

解决办法:查看本文的准备阶段总结问题解决

准备阶段总结

centos 默认是预装了glibc 和glib-common的。【如果还不清楚,可看文末的详细问题解决栏目】

所以出现 glibc和glibc-common版本冲突解决, 就是这个原因, 不能自己想装那个版本的glibc 和glib-common的【貌似高版本不会兼容低版本】。

在这里插入图片描述

这个glibc 要下载对应的centos的版本【文章开头】才行。

在这里插入图片描述

1、redis5.0.14集群下载 编译 安装

tar -zxvf redis-5.0.14.tar.gz
cd redis-5.0.14
make & make install

在这里插入图片描述

//执行以下命令可完成安装,致命错误解决。

make MALLOC=libc

2、修改redis.conf配置

daemonize改为yes

3、单台启动

启动并指定配置文件

src/redis-server redis.conf

ps -ef | grep redis

在这里插入图片描述

进入redis客户端、退出客户端。
在这里插入图片描述

退出redis服务

kill -9 PID

4、开始集群搭建

redis集群需要至少要三个master节点,我们这里搭建三个master节点,并且给每个master再搭建一个slave节点,总共6个redis节点,这里用一台机器(可以多台机器部署或者主从交叉,修改一下ip地址就可以了)部署6个redis实例,三主三从,搭建集群的步骤如下:

在第一台机器的/opt/下创建文件夹redis-cluster,然后在其下面创建6个文件夾如下:

mkdir redis-800{1,2,3,4,5,6}

把之前的redis.conf配置文件copy到redis-8001下,修改如下:

mv redis-5.0.14/redis.conf      redis-8001/

1)daemonize yes

2)port 8001(分别对每个机器的端口号进行设置)

3)dir /opt/redis-cluster/8001/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据)

4)cluster-enabled yes(启动集群模式)

5)cluster-config-file nodes-8001.conf(集群节点信息文件,这里800x最好和port对应上,redis自己维护这个文件)

6)cluster-node-timeout 5000

  1. bind 127.0.0.1(去掉bind绑定访问ip信息)
  2. protected-mode no (关闭保护模式)

7)appendonly yes

如果要设置密码需要增加如下配置:

8)requirepass xxx (设置redis访问密码)

9)masterauth xxx (设置集群节点间访问密码,跟上面一致)

5、集群单台测试

启动redis-server,并指定配置文件。

../redis-5.0.14/src/redis-server   ./redis.conf 

在这里插入图片描述

测试如果没有问题,继续操作,复杂配置到其他几台即可。

6、修改其他节点配置

把修改后的配置文件,copy到8002-8006,修改【开始集群搭建】下第2、3、5项里的端口号,可以用批量替换。

cp  ./redis.conf     ../redis-8001/

cp  ./redis.conf     ../redis-8002/

cp  ./redis.conf     ../redis-8003/

cp  ./redis.conf     ../redis-8004/

cp  ./redis.conf     ../redis-8005/

cp  ./redis.conf     ../redis-8006/
vi  /opt/redis_cluster/redis-8002/redis.conf 

vi  /opt/redis_cluster/redis-8003/redis.conf 

vi  /opt/redis_cluster/redis-8004/redis.conf 

vi  /opt/redis_cluster/redis-8005/redis.conf

vi  /opt/redis_cluster/redis-8006/redis.conf  
vi操作说明:
搜索:
/
全局替换: 
:%s/源字符串/目的字符串/g   如   把8001换成8002 :%s/8002/80001/g

7、启动redis实例,检查启动状态

分别启动6个redis实例,检查是否启动成功。

启动命令

./redis-5.0.14/src/redis-server  redis-8001/redis.conf 
./redis-5.0.14/src/redis-server  redis-8002/redis.conf 
./redis-5.0.14/src/redis-server  redis-8003/redis.conf 
./redis-5.0.14/src/redis-server  redis-8004/redis.conf 
./redis-5.0.14/src/redis-server  redis-8005/redis.conf 

ps -ef | grep redis 

如果刚刚已经启动了话 就不要重复启动了。

在这里插入图片描述

在这里插入图片描述

集群启动命令

用redis-cli创建整个redis集群(redis5以前的版本集群是依靠ruby脚本redis-trib.rb实现,redis5及以后版本源代码使用的是C语言)。

/opt/redis_cluster/redis-5.0.14/src/redis-cli --cluster create --cluster-replicas 1 10.0.218.213:8001 10.0.218.213:8002 10.0.218.213:8003 10.0.218.213:8004 10.0.218.213:8005 10.0.218.213:8006

输入yes

说明:

-a :密码;

–cluster-replicas 1:表示1个master下挂1个slave;

​ --cluster-replicas 2:表示1个master下挂2个slave。

在这里插入图片描述

M:代表为每个创建的主服务器节点创建一个从服务器节点。

查看帮助命令:

 src/redis‐cli --cluster help 
create:  创建一个集群环境host1:port1 ... hostN:portN
call:    可以执行redis命令
add-node:将一个节点添加到集群里,第一个参数为新节点的ip:port,第二个参数为集群中任意一个已经存在的节点的ip:port
del-node:移除一个节点
reshard: 重新分片
check:   检查集群状态

8、验证集群

连接任意一个客户端即可。

有密码
./redis-cli -c -a xxx -h 10.0.218.213 -p 8004
无密码
./redis-cli -c -h 10.0.218.213 -p 8004

说明:‐a表示服务端密码;‐c表示集群模式;-h指定ip地址;-p表示端口号。

在这里插入图片描述

集群验证

查看集群信息

cluster info

在这里插入图片描述

查看节点列表

 cluster nodes

在这里插入图片描述

关闭集群,则需要逐个进行关闭。

/opt/redis_cluster/redis-5.0.14/src/redis-cli -c  -h 10.0.218.213 -p 8001 shutdown
 需要密码加  -a xxx

在这里插入图片描述

问题解决

问题1:glibc基础包循环依赖

在这里插入图片描述

以上图片,可以看到2个包相互依赖,先安装谁都不行。

解决方案:其实执行以下命令 rpm -qa |grep glibc

可以看到 centos安装了相应的包 如下

glibc-2.17-260.el7.x86_64
glibc-common-2.17-260.el7.x86_64

这个2个包默认已经安装,我拿到的这台服务器是这样的。所以此2个包不需要自己安装(最坑就是这里)。

如果情况和我一样的话,继续 gcc安装-第5、6步,安装以下2个包,即可继续安装。

glibc-headers-2.17-260.el7.x86_64
glibc-devel-2.17-260.el7.x86_64

这2个包下载要注意 对应 centos版本的默认的glibc-2.17-260.el7.x86_64、glibc-common-2.17-260.el7.x86_64 这2版本才会出现依赖问题2.17-260.el7.x86_64。

glibc-devel-2.17-260.el7_6.6.x86_64.rpm 【这种el7_6.6】小版本的都不行。

建议和默认glibc保持一致就行,省去许多麻烦。

最后安装完成再次使用 rpm -qa |grep glibc,可以看到以下4个glibc包,应该就没有问题,继续执行第7步。

glibc-2.17-260.el7.x86_64
glibc-common-2.17-260.el7.x86_64
glibc-headers-2.17-260.el7.x86_64
glibc-devel-2.17-260.el7.x86_64

下载地址上面已经说了哈。

在这里插入图片描述

问题2:包冲突解决

在这里插入图片描述

解决方案:加 --replacefiles参数

rpm -ivh xxx.rpm --replacefiles

问题3 : 安装 gcc时报错

cpp = 4.8.5-39.el7 被 gcc-4.8.5-39.el7.x86_64 需要
glibc-devel >= 2.2.90-12 被 gcc-4.8.5-39.el7.x86_64 需要
libgcc >= 4.8.5-39.el7 被 gcc-4.8.5-39.el7.x86_64 需要
libgomp = 4.8.5-39.el7 被 gcc-4.8.5-39.el7.x86_64 需要
libmpc.so.3()(64bit) 被 gcc-4.8.5-39.el7.x86_64 需要
libmpfr.so.4()(64bit) 被 gcc-4.8.5-39.el7.x86_64 需要

解决办法:

采用常规思路,需要什么就去下载什么,先安装相关其他依赖,再尝试安装gcc即可。

再次推荐2个好用的地址:http://rpmfind.net/linux/RPM/index.html 或者http://rpm.pbone.net/

谢谢认真阅读完的你!

感谢
如果您认为这篇文章还不错或者有所收获,您可以点击右下角的【点赞】支持,或请我喝杯咖啡【赞赏】,这将是我继续写作,分享的最大动力!
作者:勤快的小蚂蚁
声明:原创博客请在转载时保留原文链接或者在文章开头加上本人博客地址,如发现错误,欢迎批评指正。凡是转载于本人的文章,不能设置打赏功能,如有特殊需求请与本人联系!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

勤快的小蚂蚁

奖励下我呗!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值