一, 架构:
三主三从
二, 环境和版本:
Linux 环境: CentOS 7.6
Redis 版本: Redis 4.0.10
二, 搭建步骤:
1, 搭建 Redis 集群
(1) 安装 Redis(在三台服务器上分别安装)
把相关安装包复制到 / root/bak 目录下
查看是否安装了 gcc 编译环境 (Redis 是 C 语言开发, 编译依赖 gcc 环境)
# gcc -v
编译, 安装
- # make
- # make install
(2) 创建 Redis 集群目录 (在三台服务器上分别创建)
- # cd /opt/Redis-4.0.10
- # mkdir Redis-cluster
- # cd Redis-cluster
- # mkdir 6381
- # mkdir 6382
将 Redis 安装目录 / opt/Redis-4.0.10 下的 Redis.conf 文件拷贝至 6381 文件夹, 并修改以下配置:
- daemonize yes #开启后台运行
- port 6381 #工作端口
- bind 172.18.183.7 #绑定机器的内网 IP, 一定要设置呀老铁, 不要用 127.0.0.1, 如果需要远程访问使用 0.0.0.0
- dir /opt/Redis-4.0.10/Redis-cluster/6381/ #指定工作目录, dump,rdb 快照文件将会放在该目录下, 不同实例一定要配置不同的工作目录
- cluster-enabled yes #启用集群模式
- cluster-config-file nodes-6381.conf #生成的集群配置文件名称, 集群搭建成功后会自动生成, 在工作目录下
- cluster-node-timeout 5000 #节点宕机发现时间, 可以理解为主节点宕机后从节点升级为主节点时间
- pidfile /var/run/redis_6381.pid #pid file 所在目录
- logfile /var/log/redis_6381.log #配置日志文件路径
把 6381 文件夹下的 6381.conf 文件拷贝到 6382 目录, 并重新修改 port ,bind,dir,cluster-config-file,pidfile,logfile 六个属性.
把 6381,6382 里的配置文件拷贝到其它两台机器对应的 6381,6382 目录里, 并修改 port,bind 两个属性.
由于创建集群需要用到 Redis-trib 这个命令, 它依赖 Ruby 和 RubyGems, 因此我们要先下载安装一下 (最好在三台服务器上都安装)
- # cd /root/bak
- # wget
解压到 / opt 目录下
- # tar -zxvf Ruby-2.5.1.tar.gz -C /opt/
- # cd /opt/Ruby-2.5.1/
安装编译环境
- # yum -y install openssl openssl-devel
- # ./configure --prefix=/usr/local/Ruby
# make
# make install
查看安装后的版本
# /usr/local/Ruby/bin/Ruby -v
设置环境变量
# vi /etc/profile
最后添加
export PATH=$PATH:/usr/local/Ruby/bin:
保存退出, 执行
source /etc/profile
验证下
echo $PATH
镜像加速
- # Gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
- # Gem sources -l
安装 Ruby 的 Redis 接口, 版本选择 3.3.5 的, 为何会选择 3.3.5 的是因为之前装的是 4.0 以上版本的在移槽过程中出现异常了, 故选择 3.3.5 的亲测没问题.
# Gem install Redis -v
分别在三台服务器启动六个集群节点
- # cd /opt/Redis-4.0.10/
- # ./src/Redis-server Redis-cluster/6381/6381.conf
- # ./src/Redis-server Redis-cluster/6382/6382.conf
创建集群
在 172.18.183.7 服务器执行如下命令创建集群
# ./src/Redis-trib.rb create --replicas 1 172.18.183.7:6381 172.18.183.1:6381 172.18.183.3:6381 172.18.183.7:6382 172.18.183.1:6382 172.18.183.3:6382
查看集群信息
# ./src/Redis-trib.rb check 172.18.183.7:6381
为 Redis 集群设置密码
修改所有 Redis 集群中的 Redis.conf 文件加入:
- masterauth 123456
- requirepass 123456
设置完密码后需要重新启动各节点
设置密码之后如果需要使用 Redis-trib.rb 的各种命令
如:./Redis-trib.rb check 172.18.183.7:6381
需要修改密码
# vi /usr/local/Ruby/lib/Ruby/gems/2.5.0/gems/Redis-3.3.5/lib/Redis/client.rb
修改 password 为上面设置的密码即可.
来源: http://www.bubuko.com/infodetail-3485066.html