从0到1搭建redis6.0.7

redis集群搭建一、安装redis源码安装:
1.下载源码包:
wget http://download.redis.io/releases/redis-6.0.7.tar.gz2.解压到指定目录下:
tar xf redis-6.0.7.tar.gz -C /usr/local/二、编译安装下载编译安装Redis的依赖,因为Redis是C语言编写的,所以主要安装C的编译环境
yum install gcc g++ gcc-c++ make -y进入redis文件夹进行编译安装
cd /usr/local/redis-6.0.7# 开始编译make -j 2编译安装过程中出现大量错误如下图所示:

从0到1搭建redis6.0.7

文章插图
这是因为安装6版本的Redis需要5.3以上版本的gcc,而先前YUM安装的gcc默认安装的是4.8.5版本 。
# 查看gcc版本gcc -v显示gcc版本为4.8.5 , 需要升级gcc升级gcc到9版本
yum install centos-release-scl -yyum install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils -y然后启用gcc 9 。我看到有些博客中写到启用gcc9的方法如下
# 临时启用gcc 9scl enable devtoolset-9 bash# 长期启用gcc 9echo "source /opt/rh/devtoolset-9/enable" >> /etc/profile#使配置生效source /etc/profile这种临时启用的方法发现单独在终端执行没有问题,不过把它写到脚本里执行的时候,执行到这一句就会退出脚本 。所以在脚本中我直接使用source /opt/rh/devtoolset-9/enable临时启用gcc 9 。执行完毕后gcc升级到9.3.1版本
从0到1搭建redis6.0.7

文章插图
升级好gcc后重新编译
# 清除之前编译的可执行文件及配置文件 。make cleanmake -j 2make install三、启动Redis在redis的src目录下执行./redis-server,出现如下界面说明Redis算是装好了 。不过有几个警告需要处理一下,解决的方法在警告信息中已经给出了 。
#启动redis服务[root@mysql_master src]# ./redis-server#解决警告信息# 第一个警告的解决方法echo net.core.somaxconn=511 >> /etc/sysctl.conf# 第二个警告的解决方法echo vm.overcommit_memory=1 >> /etc/sysctl.conf# 使/etc/sysctl.conf生效sysctl -p# 第三个警告的解决方法echo never > /sys/kernel/mm/transparent_hugepage/enabled#之后再重新执行./redis-server,可以看到,警告信息消失了 。Redis服务顺利启动 。此时Redis服务在前台执行,修改Redis的配置文件,让Redis服务可以在后台运行
vim /usr/local/redis-6.0.7/redis.conf将daemonize no改为daemonize yes,然后使用配置文件重新启动redis关闭加密保护,修改数据存储路径.......#redis已成功在后台启动[root@mysql_master redis-6.0.7]# ./src/redis-server redis.conf#测试redis是否正常工作[root@mysql_master redis-6.0.7]# ./src/redis-cli[root@mysql_master src]# ./redis-cli127.0.0.1:6379> pingPONG后台启动:
从0到1搭建redis6.0.7

文章插图
四、配置主从启动主结点的redis服务
[root@mysql_master redis-6.0.7]# ./src/redis-server redis.conf修改两台从结点的redis.conf配置文件,指定主节点ip和端口
注意:redis6版本和redis4版本配置主从的名称不一样
replicaof 192.168.232.11 6379主ip+主端口
从0到1搭建redis6.0.7

文章插图
修改完后启动两台从的redis,读取redis.conf才能生效
[root@mysql_slave1 redis-6.0.7]# ./src/redis-server redis.conf五、redis-sentinel---哨兵模式部署Sentinel:
#查看sentinel.conf里面配置信息[root@mysql_master redis-6.0.7]# grep -Ev "^$|#" sentinel.conf三台都要配置,具体内容如下所示,可以删完然后复制上去###############################################################port 26379daemonize yes#后台启动pidfile /var/run/redis-sentinel.pidlogfile "/var/log/redis/sentinel.log"sentinel announce-ip 0.0.0.0dir /tmpsentinel monitor mymaster 192.168.232.11 6379 1sentinel down-after-milliseconds mymaster 5000sentinel parallel-syncs mymaster 1sentinel failover-timeout mymaster 60000sentinel deny-scripts-reconfig yes##############################################################注意:一定要开启后台启动,否则Ctrl+c退出 , sentinel会自动关闭
从0到1搭建redis6.0.7

文章插图
启动,三台都要启动
读取sentinel配置文件,三台都一样启动[root@mysql_master redis-6.0.7]# ./src/redis-sentinel sentinel.conf 查看进程是否启动:[root@mysql_master redis-6.0.7]# ps -ef | grep redis-sentinel
从0到1搭建redis6.0.7

文章插图
sentinel操作

推荐阅读