1.资源准备
Redis 集群搭建在5版本以前使用Ruby构建集群,而5版本以后直接使用 redis-cli
命令创建集群了 ,本次我们将使用redis5.0.3
redis安装步骤
wget远程下载redis安装包
wget https://download.redis.io/releases/redis-5.0.3.tar.gz
解压
tar zxvf redis-5.0.3.tar.gz
安装redis所需依赖包
yum -y install gcc-c++ autoconf automake
升级GCC
这里需要说明一下:在编译 Redis 6 之前需要升级 gcc 的版本,默认情况 yum 安装的 gcc 版本是 4.8.5 , 所以我们需要执行以下操作升级 GCC
# 安装 scl 源 yum install -y centos-release-scl scl-utils-build # 安装 9 版本的 gcc、gcc-c++、gdb 工具链(toolchian) yum install -y devtoolset-9-toolchain # 临时覆盖系统原有的 gcc 引用 scl enable devtoolset-9 bash # 查看 gcc 当前版本 gcc -v
预编译
cd redis-5.0.3/ make
编译安装
创建安装目录
mkdir -p /usr/local/redis
make install(make install默认安装到/usr/local/bin目录下),如果需要指定安装路径,需要添加PREFIX参数
make PREFIX=/usr/local/redis/ install
安装成功如下图
启动
redis.conf是Redis的配置文件,安装完后,可以复制redis.conf文件到安装路径下
cp redis.conf /usr/local/redis/bin/
修改安装路径下的redis.conf,将daemonize
修改为yes
启动时,指定配置文件路径即可
./redis-server ./redis.conf
配置开机启动
在系统服务目录里创建redis.service文件并写入一下内容
vim /etc/systemd/system/redis.service
[Unit] Description=redis-server After=network.target [Service] Type=forking ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target
重启服务 systemctl daemon-reload
测试redis
-
关闭redis-server:systemctl stop redis.service
-
开启redis-server:systemctl start redis.service
-
查看redis-server状态:systemctl status redis.service
加入开机自启
systemctl enable redis.service
2. Redis集群搭建
Redis 集群搭建在5版本以前使用Ruby构建集群,而5版本以后直接使用 redis-cli 命令创建集群了
ip | 端口 |
---|---|
192.168.88.136 | 6371,6372,6373,6374,6375,6376 |
创建以下目录
mkdir -p /opt/redis_cluster/conf /opt/redis_cluster/data /opt/redis_cluster/log
编写配置文件
三个节点分别创建 redis-*.conf
并添加以下配置(* 为具体端口为了区分文件)。
注意:修改配置文件中所有 IP 和端口部分内容,可以使用 vi 命令 %s/old/new/g
全局替换。
vi /opt/redis_cluster/conf/redis-6371.conf(注意配置文件名称起名规则)
# 放行访问IP限制 bind 0.0.0.0 # 端口 port 6371 # 后台启动 daemonize yes # 日志存储目录及日志文件名 logfile "/opt/redis_cluster/log/redis-6371.log" # rdb数据文件名 dbfilename dump-6371.rdb # aof模式开启和aof数据文件名 appendonly yes appendfilename "appendonly-6371.aof" # rdb数据文件和aof数据文件的存储目录 dir /opt/redis_cluster/data # 设置密码 requirepass 123456 # 从节点访问主节点密码(必须与 requirepass 一致) masterauth 123456 # 是否开启集群模式,默认 no cluster-enabled yes # 集群节点信息文件,会保存在 dir 配置对应目录下 cluster-config-file nodes-6371.conf # 集群节点连接超时时间 cluster-node-timeout 15000 # 集群节点 IP cluster-announce-ip 127.0.0.1 # 集群节点映射端口 cluster-announce-port 6371 # 集群节点总线端口 cluster-announce-bus-port 16371
每个 Redis 集群节点都需要打开两个 TCP 连接。一个用于为客户端提供服务的正常 Redis TCP 端口,例如 6371。还有一个基于 6371 端口加 10000 的端口,比如 16371
创建 Redis Cluster 集群
启动 6 个 Redis 节点
/usr/local/redis/bin/redis-server /opt/redis_cluster/conf/redis-6371.conf /usr/local/redis/bin/redis-server /opt/redis_cluster/conf/redis-6372.conf /usr/local/redis/bin/redis-server /opt/redis_cluster/conf/redis-6373.conf /usr/local/redis/bin/redis-server /opt/redis_cluster/conf/redis-6374.conf /usr/local/redis/bin/redis-server /opt/redis_cluster/conf/redis-6375.conf /usr/local/redis/bin/redis-server /opt/redis_cluster/conf/redis-6376.conf
创建集群
随便一个 Redis 节点中使用客户端运行以下命令即可(注意IP和端口)
/usr/local/redis/bin/redis-cli -a 123456 --cluster create \ 127.0.0.1:6371 127.0.0.1:6372 \ 127.0.0.1:6373 127.0.0.1:6374 \ 127.0.0.1:6375 127.0.0.1:6376 \ --cluster-replicas 1
-
--cluster`:构建集群环境的所有 Redis 节点 IP + PORT 信息
-
--cluster-replicas 1
:主节点数/从节点数的比例,使用一比一的比例,6 个节点最终会产生 3 主 3 从的集群环境
出现选择提示信息,输入 yes,集群创建成功
至此redis集群安装完成
redis集群简单查看
连接节点
/usr/local/redis/bin/redis-cli -h 127.0.0.1 -p 6371 -a 123456
查看集群信息
cluster info