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

    • 写给小白
    • 版本说明
    • 准备
    • gcc安装
    • gcc++安装
    • glibc离线安装
    • 准备阶段总结
    • 1、redis5.0.14集群下载 编译 安装
    • 2、修改redis.conf配置
    • 3、单台启动
    • 4、开始集群搭建
    • 5、集群单台测试
    • 6、修改其他节点配置
    • 7、启动redis实例,检查启动状态
    • 8、验证集群
    • 问题解决
      • 问题1:glibc基础包循环依赖
      • 问题2:包冲突解决
      • 问题3 : 安装 gcc时报错

写给小白

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包
Centos7.6.1810离线安装Redis5.0.14集群部署_第1张图片
在这里插入图片描述

准备

安装思路:

尝试安装核心包(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  版本查看

Centos7.6.1810离线安装Redis5.0.14集群部署_第2张图片

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++ 
       成功

Centos7.6.1810离线安装Redis5.0.14集群部署_第3张图片

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的【貌似高版本不会兼容低版本】。

Centos7.6.1810离线安装Redis5.0.14集群部署_第4张图片

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

在这里插入图片描述

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

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

Centos7.6.1810离线安装Redis5.0.14集群部署_第5张图片

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

make MALLOC=libc

2、修改redis.conf配置

daemonize改为yes

3、单台启动

启动并指定配置文件

src/redis-server redis.conf

ps -ef | grep redis

Centos7.6.1810离线安装Redis5.0.14集群部署_第6张图片

进入redis客户端、退出客户端。
Centos7.6.1810离线安装Redis5.0.14集群部署_第7张图片

退出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 

Centos7.6.1810离线安装Redis5.0.14集群部署_第8张图片

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

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 

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

Centos7.6.1810离线安装Redis5.0.14集群部署_第9张图片

Centos7.6.1810离线安装Redis5.0.14集群部署_第10张图片

集群启动命令

用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。

Centos7.6.1810离线安装Redis5.0.14集群部署_第11张图片

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表示端口号。

Centos7.6.1810离线安装Redis5.0.14集群部署_第12张图片

集群验证

查看集群信息

cluster info

Centos7.6.1810离线安装Redis5.0.14集群部署_第13张图片

查看节点列表

 cluster nodes

在这里插入图片描述

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

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

Centos7.6.1810离线安装Redis5.0.14集群部署_第14张图片

问题解决

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

Centos7.6.1810离线安装Redis5.0.14集群部署_第15张图片

以上图片,可以看到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

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

Centos7.6.1810离线安装Redis5.0.14集群部署_第16张图片

问题2:包冲突解决

Centos7.6.1810离线安装Redis5.0.14集群部署_第17张图片

解决方案:加 --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/

谢谢认真阅读完的你!

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

你可能感兴趣的:(JAVA,Linux,ruby,centos,redis,glibc,gcc)