redis5.0集群搭建
一、安装Redis
1、创建目录,/usr/local/redis
$ mkdir /usr/local/redis
2、传包
从官网下载redis-5.0.8.tar.gz上传至Linux的/usr/local/redis目录下
或者在Linux直接wget下载
$ wget http://download.redis.io/releases/redis-5.0.8.tar.gz
3、安装
$ cd /usr/local/redis $ tar zxvf redis-5.0.8.tar.gz $ cd /usr/local/redis/redis-5.0.8 $ make
①make失败报错为 gcc:commond not fount.
由于Redis是用C语言写的,需要安装gcc编译,安装命令如下:
$ yum -y install gcc automake autoconf libtool make
②yum安装时卡在获取最近的yum源,此时需要更换yum源,推荐阿里的yum源
③更换yum源安装gcc后重新make依然失败,此时需要执行make clean清理环境,之后重新make成功。
二、规划集群架构
1、集群架构为三节点,每节点上起两个服务,分别为主备,三个节点组成Redis集群。
分别为:
主:192.168.0.102:6379 备:192.168.0.102:6380
主:192.168.0.103:6379 备:192.168.0.103:6380
主:192.168.0.105:6379 备:192.168.0.105:6380
注意每台节点都需要安装redis
三、修改配置文件
1、每个节点上复制两份redis.conf 分别到 /opt/redis-cluster-6379/ 及/opt/redis-cluster-6380/
$ mkdir /opt/redis-cluster-6379/ $ cp /usr/local/redis/redis-5.0.8/redis.conf /opt/redis-cluster-6380/ $ mkdir /opt/redis-cluster-6380/ $ cp /usr/local/redis/redis-5.0.8/redis.conf /opt/redis-cluster-6380/
2、修改配置文件,以10.1.0.15:6379为例
1.修改bind值,是所有终端均可访问 bind 0.0.0.0 2.关闭protected-mode,将yes修改为no protected-mode no 3.修改端口号为规划的端口号 port 6379 4.修改Redis为后台启动,no改为yes daemonize yes 5.pidfile改为与端口号一致 pidfile /var/run/redis_6379.pid 6.修改rdb文件名,与端口号保持一致 dbfilename dump-6379.rdb 7.开启Redis集群配置,去掉#号 cluster-enabled yes cluster-config-file nodes-1-6379.conf cluster-node-timeout 15000
ps:cluster-config-file须在集群内全局唯一,推荐节点号+端口格式
⑧保存并退出,将文件名修改为可读性较强,推荐按端口号命名
四、启动
1、分别使用每个配置文件启动redis, 在每个节点上依次执行启动
##在redis-5.0.5/src/目录下 $ ./redis-server /opt/redis-cluster-6379/redis-node-1-6379.conf
$ ./redis-server /opt/redis-cluster-6380/redis-node-1-6380.conf
2、集群启动
①执行启动命令
$ ./redis-cli --cluster create 192.168.0.102:6379 192.168.0.102:6380 192.168.0.103:6379 192.168.0.103:6380 192.168.0.105:6379 192.168.0.105:6380 --cluster-replicas 1
集群启动问题:No route to host
解决办法:
一、停止Linux的防火墙(不建议)
$ systemctl stop firewalld.service
其他相关命令
#显示服务的状态
$ systemctl status firewalld.service
#启动防火墙
$ systemctl start firewalld.service
二、开放6379,6380,16379(集群总线)端口
firewall-cmd --add-port=6379/tcp --permanent firewall-cmd --add-port=6380/tcp --permanent
firewall-cmd --add-port=16379/tcp --permanent firewall-cmd --reload
参数解释
1、firwall-cmd:是Linux提供的操作firewall的一个工具;
firwall-cmd安装命令(centOS8已经安装好):
yum install firewalld
2、–permanent:表示设置为持久;
3、–add-port:标识添加的端口;
其他相关命令
#查看开放的端口 $ firewall-cmd --list-ports #查询6379端口是否开放 $ firewall-cmd --query-port=6379/tcp #移除6379端口 firewall-cmd --permanent --remove-port=6379/tcp
②确认配置
执行命令后Redis会显示即将生成的集群中每个节点的主备角色,确认后输入yes继续部署
③部署成功后可以看到如下
参考文献:https://www.cnblogs.com/AzkbanHan/p/11497589.html