Linux(CentOS 7) 部署 redis 集群

下载redis

Downloads - Redis (官网页都是介绍的最新版,我观察目前出现了redis 和 redis Stack)

因我的旧环境是 CentOS 7,redis最新版已经不在支持,所以示例安装最常用的7.0.x

这里直接附上各个版本下载连接 小伙伴们就不需要在自己寻找下载地址了,任君挑选。地址如下 Index of /releases/

基本前提

1、系统(CentOS 7)

bash 复制代码
cat /etc/os-release

gcc版本

CentOS 7的默认GCC版本为4.8.5版本,而安装Redis7.0.X需要GCC 9.X版本以上,若GCC版本不足,则会造成编译时报错。 可查看我的另一篇文章 进行升级

Centos 7 升级 GCC-CSDN博客

|---------|-------------------------------------------|--------------------|
| GCC 9.3 | sudo yum install devtoolset-9(无视根本不好使) | Redis 7.0+、通用开发需求 |
| GCC 11 | sudo yum install devtoolset-11(无视根本不好使) | 需要最新特性的项目(如 C++20) |

bash 复制代码
gcc --version

解压

一般都会将redis目录放置到 /usr/local/redis目录,所以这里解压直接就解压到目标目录去

bash 复制代码
# 创建目标目录
sudo mkdir -p /usr/local/redis

# 解压到指定目录 --strip-components=1 会去掉压缩包内的第一层目录结构
sudo tar -zxvf redis-7.0.15.tar.gz -C /usr/local/redis --strip-components=1

安装

进入 解压后的 redis目录 /usr/local/redis

bash 复制代码
# 编译
make

# 安装  PREFIX 将编译后的程序文件存放到指定路径 -后续reids的所有程序文件就都存在在此,后续方便删除
make PREFIX=/usr/local/redis install

验证安装

bash 复制代码
/usr/local/redis/bin/redis-server --version

集群部署

注意这里必须要创建六个节点,因为集群部署redis官方要求必须要其三主三从

注意里面大多数redis命令 我都使用了绝对路径 /usr/local/redis/bin/redis-server,懒得配置环境变量了,因为在服务其上使用redis命令的情况太少了,想配置其实也很简单,大家随便一搞就可以了

创建集群节点目录

bash 复制代码
mkdir -p /opt/redis-cluster/{7001,7002,7003,7004,7005,7006}

生成配置文件模板

bash 复制代码
cat <<EOF > /opt/redis-cluster/redis-cluster-template.conf
port {{PORT}}
cluster-enabled yes
cluster-node-timeout 5000
cluster-config-file nodes-{{PORT}}.conf
dir /opt/redis-cluster/{{PORT}}
#关闭持久化以节省内存
appendonly no
#限制每个节点最大内存为 100MB
maxmemory 100mb
# 内存不足时淘汰策略
maxmemory-policy allkeys-lru
# 允许后台运行
daemonize yes
# 进程ID文件路径
pidfile /opt/redis-cluster/{{PORT}}/redis_{{PORT}}.pid
# 日志文件路径
logfile "/opt/redis-cluster/{{PORT}}/{{PORT}}.log"
EOF
生成各节点配置文件
bash 复制代码
for port in 7001 7002 7003 7004 7005 7006; do
  mkdir -p /opt/redis-cluster/$port
  sed "s/{{PORT}}/$port/g" /opt/redis-cluster/redis-cluster-template.conf > /opt/redis-cluster/$port/redis.conf
done

启动 Redis 节点

bash 复制代码
for port in 7001 7002 7003 7004 7005 7006; do
  /usr/local/redis/bin/redis-server /opt/redis-cluster/$port/redis.conf
done

创建 Redis 集群

bash 复制代码
/usr/local/redis/bin/redis-cli --cluster create \
127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 \
127.0.0.1:7004 127.0.0.1:7005 127.0.0.1:7006 \
--cluster-replicas 1

yes 后就会看到如下效果

集群验证

bash 复制代码
/usr/local/redis/bin/redis-cli -p 7001 cluster nodes

正常可以看到 三主三从节点

亲测可用~请诸君共赏

相关推荐
11路没有终点17 分钟前
Docker 化测试环境:一致性交付
运维·docker·容器
风景的人生22 分钟前
Linux虚拟机网络故障排查与解决方案
运维·网络·ssh
..Dauntless..37 分钟前
【Linux】权限问题——拥有者、所属组和其他用户的协调
linux·运维·服务器
莫得感情 o43 分钟前
Redis 09 · 高可用:Sentinel 如何发现故障并完成切主
redis·缓存·sentinel
平行云1 小时前
实时云渲染信创架构解析:从GPU池化到全栈适配的技术演进
linux·unity·docker·ue5·webgl·数字孪生·实时云渲染
handler011 小时前
【Linux】信号:内核的“敲门声”
linux·运维·服务器·c++·c·信号·signal
T1mzhou1 小时前
ARM64 Linux 6.10内核启动流程6-psci.c和ATF/U-Boot 的电源接口
linux·服务器·c语言
lucybean011 小时前
食品加工行业污水处理曝气装置采购避坑与合规筛选指南
运维
harmony&1 小时前
DevOps进阶:SonarQube 代码审计与 Harbor 镜像仓库实战
运维·devops
Neighbor_OldY2 小时前
CSRF跨站请求伪造攻击检测与应急处置实战:伪造请求识别与防护落地
运维·安全·web安全