80 lines
1.8 KiB
Bash
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" |