Linux环境下Redis集群搭建详细教程,0门槛有手就会
文章目录
一、下载Redis
官方链接:https://redis.io/downloads/
这里我选择下载了市场使用比较广泛成熟的6.2版本,最新的6.2.14。

二、创建Redis管理用户
创建redisadm用户,作为Redis的运维用户。
$ mkdir -p /home/redisadm
$ groupadd -g 60010 redisgrp
$ useradd redisadm -u 60010 -d /home/redisadm -g redisgrp
$ chown -R redisadm:redisgrp /home/redisadm
$ echo "redisadm:redisadm" |chpasswd
三、上传Redis
将Redis安装包上传到linux服务器并解压,可以通过FTP工具连接上传,这里我上传到了/home/redisadm目录下进行安装。
使用root用户进行解压缩,执行命令:
$ cd /home/redisadm
$ tar -zxvf redis-6.2.14.tar.gz
四、安装Redis
注意使用root用户安装。进入刚才的Redis解压缩路径操作,我这边是/home/redisadm/redis-6.2.14
-
进行编译,执行命令:
$ make -
安装环境检查,执行命令:
注意,这一步不能报错,如果报错了需要检查确实什么插件,将插件安装好。$ make test -
安装,执行命令:
$ make install -
安装成功后,我们可以看到Redis相关命令已经加到/usr/local/bin目录下了。

五、搭建集群
本次我们搭建的Redis集群设计为3台服务器,包含3主3从共6个Redis节点,每个服务器包含1主1从2个Redis节点,分别为master 1、slave1;master 2、slave 2;master 3、slave 3。集群架构如下图:

接下来的集群配置时,我们可以切换成redisadm用户操作了。
1. 创建集群配置目录redis-cluster/
$ cd /home/redisadm
$ mkdir -p /home/redisadm/redis-cluster
$ ll

2. 创建master 1节点目录7001,复制redis.conf配置文件
$ cd /home/redisadm/redis-cluster
$ mkdir 7001
$ ll
$ cp ../redis-6.2.14/redis.conf /home/redisadm/redis-cluster/7001/redis.conf
$ cd 7001
$ ll

3. 配置marst 1主节点7001
主节点7001的配置文件redis.conf修改内容,部分参数阈值可自行调大或减小:
-
注释去掉绑定监听的IP地址:
#bind 127.0.0.1 -::1 -
关闭本地ip访问安全权限限制,开启远程访问权限:
protected-mode no -
设置节点监听端口:
port 7001 -
设置空闲连接断开时间,单位s:
timeout 30 -
设置TCP保持活跃时间:
tcp-keepalive 30 -
开启守护进程,redis进程以后台形式启动:
daemonize yes -
配置不启用任何特定的进程管理监督机制:
supervised no -
配置指定pid记录文件:
pidfile /home/redisadm/redis-cluster/7001/redis_7001.pid -
配置日志输出级别:
loglevel verbose -
配置日志输出文件:
logfile "/home/redisadm/redis-cluster/7001/redis.log" -
配置logo显示,在启动或运行时会在控制台/界面中显示Logo或版本信息:
always-show-logo yes -
配置禁用 Redis 的 RDB(快照)持久化功能:
save "" -
配置快照失败处理策略,当 Redis 执行 BGSAVE 命令生成 RDB 快照失败时,不停止处理写请求,即忽略错误并继续接受数据写入:
stop-writes-on-bgsave-error no -
配置数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据:
dir /home/redisadm/redis-cluster/7001/ -
设置集群节点间访问密码,与Redis密码一致:
masterauth redisadm -
配置主从复制RDB文件加载模式,从库(Slave)在加载主库(Master)发送的 RDB 快照文件时,禁用“无盘加载”(Diskless Load)模式,即采用传统的“基于磁盘”的加载方式:
repl-diskless-load disabled -
设置 Redis 访问密码:
requirepass redisadm -
设置启动 AOF 持久化机制:
appendonly yes -
设置 AOF 持久化参数,当 Redis 执行 AOF 文件重写(BGREWRITEAOF)时,暂停执行 fsync 操作,以避免因频繁同步磁盘而阻塞主进程,从而提升性能:
no-appendfsync-on-rewrite yes -
设置启动集群模式:
cluster-enabled yes -
设置集群节点信息文件:
cluster-config-file nodes-7001.conf -
设置集群节点心跳检测的超时时间,单位ms:
cluster-node-timeout 5000 -
设置集群节点槽位覆盖参数,当 Redis Cluster 中存在未分配的槽位(Slot)时,集群将拒绝所有写请求,以确保数据一致性和完整性:
cluster-require-full-coverage yes -
设置慢查询日志保留条数,用于分析性能瓶颈和调试问题:
slowlog-max-len 500
4. 配置slave 1从节点7002
-
创建7002目录,从7001目录下复制redis.conf配置文件:
$ cd /home/redisadm/redis-cluster/ $ mkdir 7002 $ ll $ cp ./7001/redis.conf ./7002/redis.conf $ cd 7002 $ ll
-
修改7002目录下redis.conf配置文件,将文件内7001替换为7002,主要涉及以下参数:
port 7002 logfile "/home/redisadm/redis-cluster/7001/redis.log" pidfile /home/redisadm/redis-cluster/7001/redis_7001.pid dir /home/redisadm/redis-cluster/7001/ cluster-config-file nodes-7001.conf
5. 配置剩余集群节点
配置方法与7002一致,替换文件内端口信息。
-
配置文件复制:因为我这些是在同一个机器上,所以只需要使用cp命令复制到对应的节点文件夹内,修改配置文件就行。
$ cp /home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7003/redis.conf $ cp /home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7004/redis.conf $ cp /home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7005/redis.conf $ cp /home/redisadm/redis-cluster/7001/redis.conf /home/redisadm/redis-cluster/7006/redis.conf但是如果有多台机器的时候,就需要使用
scp拷贝过去了:$ scp /home/redisadm/redis-cluster/7001/redis.conf redisadm@xxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7003/redis.conf $ scp /home/redisadm/redis-cluster/7001/redis.conf redisadm@xxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7004/redis.conf $ scp /home/redisadm/redis-cluster/7001/redis.conf redisadm@xxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7005/redis.conf $ scp /home/redisadm/redis-cluster/7001/redis.conf redisadm@xxx.xxx.xxx.xxx:/home/redisadm/redis-cluster/7006/redis.conf -
创建AOF持久化路径:因为是在不同服务器上,所以我们要自己手动创建集群内其他节点的AOF持久化文件目录。比如在服务器1上有2个节点:master 1 (7001)+ slave 1(7002),那我们就创建其余集群节点点目录:
$ mkdir -p /home/redisadm/redis-cluster/7003/ $ mkdir -p /home/redisadm/redis-cluster/7004/ $ mkdir -p /home/redisadm/redis-cluster/7005/ $ mkdir -p /home/redisadm/redis-cluster/7006/
6. 启动集群所有节点
-
执行启动命令:
注意使用redisadm用户启动,不然后面创建集群会报错。$ cd /home/redisadm/redis-6.2.14/src $ redis-server /home/redisadm/redis-cluster/7001/redis.conf $ redis-server /home/redisadm/redis-cluster/7002/redis.conf $ redis-server /home/redisadm/redis-cluster/7003/redis.conf $ redis-server /home/redisadm/redis-cluster/7004/redis.conf $ redis-server /home/redisadm/redis-cluster/7005/redis.conf $ redis-server /home/redisadm/redis-cluster/7006/redis.conf -
检查启动是否成功,可以看到全部端口启动好,并且后面是
[cluster]:$ ps -ef|grep redisadm
7. 创建集群
创建集群,使用create创建,cluster-replicas指定从节点个数,前3个节点为master,后3个为则从节点。需要加上redis.conf内设置的密码redisadm,不然会报错。
$ /home/redisadm/redis-6.2.14/src/redis-cli --cluster create --cluster-replicas 1 127.0.0.1:7001 127.0.0.1:7003 127.0.0.1:7005 127.0.0.1:7002 127.0.0.1:7004 127.0.0.1:7006 -a redisadm

8. 验证集群
-
连接任意一个节点测试,这里使用7001端口试试。
$ /home/redisadm/redis-6.2.14/src/redis-cli -c -h 127.0.0.1 -p 7001 -a redisadm
-
去7001端口对应的从节点查询,自动跳转到了7001主节点:
$ /home/redisadm/redis-6.2.14/src/redis-cli -c -h 127.0.0.1 -p 7002 -a redisadm
-
换一个主节点7003查询,自动跳转到了7001主节点:
$ /home/redisadm/redis-6.2.14/src/redis-cli -c -h 127.0.0.1 -p 7003 -a redisadm
9. 查看集群信息
查看集群信息:
$ /home/redisadm/redis-6.2.14/src/redis-cli -c -h 127.0.0.1 -p 7001 -a redisadm
$ cluster info

查看集群节点:
$ cluster nodes

10. 关闭集群
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7001 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7002 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7003 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7004 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7005 -a redisadm shutdown
$ /home/redisadm/redis-6.2.14/src/redis-cli -h 127.0.0.1 -p 7006 -a redisadm shutdown
11. 删除节点
$ /home/redisadm/redis-6.2.14/src/redis-cli --cluster del-node 127.0.0.1:7002 9ee2e5b61994f18b49d4da84ada22a75225af2fe
12. 查看客户端连接情况
查询redis连接情况和最大连接数。
$ info clients
$ config get maxclients

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)