目录前期准备Redis的环境搭建1、Redis的下载安装2、Redis的单节点配置2.1 创建目录2.2 编辑配置文件2.3 启动Redis2.4 连接测试2.5 基本读写测试2.6 停止单节点3、Redis的集群搭建3.1 修改核心配置文件3.2 文件分发3.3 修改从节点配置文件3.4 集群启动脚本3.4 集群启动3.5 查看状态3.6 集群停止脚本3.7 集群停止前期准备查看网卡配置静态IPvi /etc/sysconfig/network-scripts/ifcfg-ens32 ---- 根据自己网卡设置。设置主机名hostnamectl --static set-hostname 主机名例如hostnamectl --static set-hostname hadoop001配置IP与主机名映射vi /etc/hosts关闭防火墙systemctl stop firewalldsystemctl disable firewalld配置免密登录传送门Redis的环境搭建1、Redis的下载安装1.1. 下载cd/opt/modulewget https://download.redis.io/releases/redis-6.2.6.tar.gz此处是安装路径是/opt/module1.3 解压重命名tar -zxvf redis-6.2.6.tar.gzmv redis-6.2.6 redis1.4 进行编译vi /etc/profilecd/opt/module/redismake -j $(nproc)1.5 编译结果校验src/redis-server --version1.6 配置环境变量vi /etc/profile#REDIS_HOMEexport REDIS_HOME/opt/module/redisexport PATH$PATH:$REDIS_HOME/bin1.6 加载环境变量source /etc/profile验证环境变量是否生效:env | grep REDIS_HOMEenv | grep PATH2、Redis的单节点配置2.1 创建目录mkdir -p /opt/module/redis/confmkdir -p /opt/module/redis/data/6379mkdir -p /opt/module/redis/logs2.2 编辑配置文件vi \$REDIS_HOME/conf/redis-standalone.conf# 基础配置 bind 0.0.0.0port 6379daemonize yespidfile /opt/module/redis/redis_6379.pidlogfile /opt/module/redis/logs/redis_6379.logdir /opt/module/redis/data/6379# 安全配置测试环境可简化 # 测试阶段可以不设密码便于调试# requirepass Redis2026# 内存策略 maxmemory 2gbmaxmemory-policy allkeys-lru# 持久化 save 900 1save 300 10save 60 10000rdbcompression yesdbfilename dump.rdb2.3 启动Redis\$REDIS_HOME/src/redis-server \$REDIS_HOME/conf/redis-standalone.conf# 检查进程是否运行ps aux | grep redis | grep -v grep2.4 连接测试# 本地连接测试\$REDIS_HOME/src/redis-cli -h 127.0.0.1 -p 6379 ping# 返回 PONG 表示正常# 使用主机名连接测试\$REDIS_HOME/src/redis-cli -h hadoop001-p 6379 ping# 返回 PONG 表示正常2.5 基本读写测试\$REDIS_HOME/src/redis-cli -h hadoop001 -p 6379# 写入测试set test_key hello redis# 返回 OK# 读取测试get test_key# 返回 hello redis# 查看节点信息info serverinfo memory# 退出exit2.6 停止单节点# 正常停止\$REDIS_HOME/src/redis-cli -h hadoop001 -p 6379 shutdown# 验证已停止ps aux | grep redis | grep -v grep3、Redis的集群搭建3.1 修改核心配置文件cp \$REDIS_HOME/conf/redis-standalone.conf \$REDIS_HOME/conf/redis.confvi \$REDIS_HOME/conf/redis.conf# 网络与端口 bind 0.0.0.0port 6379# 运行模式 daemonize yespidfile /opt/module/redis/redis_6379.pidlogfile /opt/module/redis/logs/redis_6379.logdir /opt/module/redis/data/6379# 安全认证主节点启用从节点注释 # 主节点启用从节点注释掉或删掉requirepass Redis2026# 内存与持久化 maxmemory 2gbmaxmemory-policy allkeys-lrusave 900 1save 300 10save 60 10000rdbcompression yesdbfilename dump.rdb# 主从复制从节点启用 # 从节点启用主节点注释掉或删掉# replicaof hadoop001 6379# masterauth Redis2026# replica-read-only yes3.2 文件分发注意在分发文件前要做好三台机器的IP与主机名映射 /etc/hosts进行分发文件scp -r \$REDIS_HOME roothadoop002:/opt/module/scp -r \$REDIS_HOME roothadoop003:/opt/module/scp -r /etc/profile roothadoop002:/etc/profilescp -r /etc/profile roothadoop003:/etc/profile让三台机器文件生效ssh hadoop001; source /etc/profilessh hadoop002; source /etc/profilessh hadoop003; source /etc/profile3.3 修改从节点配置文件从节点 hadoop002---------------------------------------------------vi \$REDIS_HOME/conf/redis.confreplicaof hadoop001 6379masterauth Redis2026replica-read-only yes--------------------------------------------------从节点 hadoop003--------------------------------------------------vi \$REDIS_HOME/conf/redis.confreplicaof hadoop001 6379masterauth Redis2026replica-read-only yes--------------------------------------------------3.4 集群启动脚本touch \$REDIS_HOME/start-cluster.shchmod x \$REDIS_HOME/start-cluster.shvi \$REDIS_HOME/start-cluster.sh#!/bin/bashREDIS_HOME/opt/module/redisNODES(hadoop001 hadoop002 hadoop003)echo 启动 Redis 集群 for node in \${NODES[]}; doecho -n 启动 \$node ... ssh \$node source /etc/profile; \$REDIS_HOME/src/redis-server \$REDIS_HOME/conf/redis.confif [ \$? -eq 0 ]; thenecho ✅ 成功elseecho ❌ 失败fidoneecho 启动完成 3.4 集群启动\$REDIS_HOME/start-cluster.sh3.5 查看状态ssh hadoop001 ps aux | grep redis | grep -v grepssh hadoop002 ps aux | grep redis | grep -v grepssh hadoop003 ps aux | grep redis | grep -v grep# 在主节点查看复制状态\$REDIS_HOME/src/redis-cli -h hadoop001 -p 6379 -a Redis2026 INFO replication显示结果# Replicationrole:masterconnected_slaves:2slave0:iphadoop002,port6379,stateonline,offset12345,lag1slave1:iphadoop003,port6379,stateonline,offset12345,lag13.6 集群停止脚本touch \$REDIS_HOME/stop-cluster.shchmod x \$REDIS_HOME/stop-cluster.shvi \$REDIS_HOME/stop-cluster.sh#!/bin/bashREDIS_HOME/opt/module/redisNODES(hadoop001 hadoop002 hadoop003)PASSWORDRedis2026echo 停止 Redis 集群 for node in \${NODES[]}; doecho -n 停止 \$node ... ssh \$node source /etc/profile; \$REDIS_HOME/src/redis-cli -h \$node -p 6379 -a Redis2026 shutdown 2/dev/nullif [ \$? -eq 0 ]; thenecho ✅ 成功elseecho ⚠️ 可能未运行fidoneecho 停止完成 3.7 集群停止\$REDIS_HOME/stop-cluster.sh