Script-Collected/sh/redis/init_redis.sh

80 lines
1.8 KiB
Bash

#!/bin/bash
# Rocky Linux 8 Redis 5.x 安装脚本修复版
# 密码设置为: hsc1825713423
# 检查是否为root用户
if [ "$(id -u)" -ne 0 ]; then
echo "请使用root用户运行此脚本!"
exit 1
fi
# 安装EPEL仓库
echo "正在安装EPEL仓库..."
dnf install -y epel-release
# 安装Redis 5.x
echo "正在安装Redis 5.x..."
dnf install -y redis
# 查找Redis实际安装路径
REDIS_SERVER_PATH=$(which redis-server)
echo "检测到Redis安装路径: $REDIS_SERVER_PATH"
# 创建正确的systemd服务文件
echo "正在修复systemd服务配置..."
cat > /etc/systemd/system/redis.service <<EOF
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=simple
ExecStart=$REDIS_SERVER_PATH /etc/redis.conf
Restart=on-failure
User=redis
Group=redis
[Install]
WantedBy=multi-user.target
EOF
# 配置Redis
echo "正在配置Redis..."
# 设置密码
sed -i "s/# requirepass foobared/requirepass hsc1825713423/" /etc/redis.conf
# 允许远程连接(根据需要取消注释)
# sed -i "s/bind 127.0.0.1/bind 0.0.0.0/" /etc/redis.conf
# 启用保护模式(更安全)
sed -i "s/protected-mode no/protected-mode yes/" /etc/redis.conf
# 修复权限问题
chown redis:redis /etc/redis.conf
chmod 640 /etc/redis.conf
# 重新加载systemd配置
systemctl daemon-reload
# 启动Redis服务并设置开机自启
echo "启动Redis服务..."
systemctl enable --now redis
# 检查Redis状态
echo "检查Redis状态..."
systemctl status redis --no-pager
# 测试Redis连接
echo "测试Redis连接..."
redis-cli -a hsc1825713423 ping
# 输出完成信息
echo "Redis 5.x 安装完成!"
echo "密码: hsc1825713423"
echo "配置文件: /etc/redis.conf"
echo "管理命令:"
echo "启动Redis: systemctl start redis"
echo "停止Redis: systemctl stop redis"
echo "重启Redis: systemctl restart redis"