Files
notes/resource/组件/Anolis 系统 Redis 安装.md
T
Docker7530 7ab924d668 1774110743
2026-03-22 00:32:26 +08:00

11 KiB
Raw Blame History

Redis 8.6.1 标准安装文档

适用系统:Anolis OS 8.6 x86_64


1. 安装规划

本安装文档采用如下标准目录:

项目 路径
安装包目录 /usr/local/src
Redis 安装目录 /usr/local/redis-8.6.1
软链接 /usr/local/redis
配置目录 /etc/redis
数据目录 /data/redis
日志目录 /var/log/redis
运行用户 redis
服务名 redis
监听端口 6379

2. 前置准备

2.1 切换 root 用户

sudo -i

2.2 关闭或放通防火墙端口(如有需要)

如果 Redis 仅本机访问,可以不开放 6379。

若需要远程访问:

firewall-cmd --permanent --add-port=6379/tcp
firewall-cmd --reload

查看:

firewall-cmd --list-ports

3. 安装编译依赖

Anolis OS 8.6 与 RHEL/CentOS 8 系兼容,可使用 dnf

dnf -y install gcc gcc-c++ make tar wget perl systemd-devel

建议再安装常用工具:

dnf -y install vim net-tools lsof

验证 gcc

gcc --version
make --version

4. 上传并解压安装包

假设你已经将 redis-8.6.1.tar.gz 上传到 /usr/local/src/

cd /usr/local/src
ls -lh redis-8.6.1.tar.gz

解压:

tar -xzf redis-8.6.1.tar.gz
cd redis-8.6.1

5. 编译 Redis

执行编译:

make -j$(nproc)

安装到指定目录:

make PREFIX=/usr/local/redis-8.6.1 install

创建软链接:

ln -sfn /usr/local/redis-8.6.1 /usr/local/redis

验证:

/usr/local/redis/bin/redis-server -v
/usr/local/redis/bin/redis-cli -v

6. 创建运行用户和目录

6.1 创建 redis 用户

id redis >/dev/null 2>&1 || useradd -r -s /sbin/nologin redis

6.2 创建配置、数据、日志目录

mkdir -p /etc/redis
mkdir -p /data/redis
mkdir -p /var/log/redis

6.3 设置权限

chown -R redis:redis /data/redis
chown -R redis:redis /var/log/redis

7. 生成 Redis 配置文件

从源码目录复制默认配置:

cp /usr/local/src/redis-8.6.1/redis.conf /etc/redis/redis.conf

备份一份:

cp /etc/redis/redis.conf /etc/redis/redis.conf.bak

8. 修改 Redis 配置

编辑配置文件:

vim /etc/redis/redis.conf

建议修改为以下关键项。


8.1 基础配置

找到并修改:

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised systemd
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis/redis.log
databases 16

说明:

  • bind 0.0.0.0:允许所有地址访问 如果你只允许本机访问,建议改成:

    bind 127.0.0.1
    
  • protected-mode yes:建议保持开启

  • daemonize no:使用 systemd 启动时必须为 no

  • supervised systemd:推荐 systemd 管理


8.2 数据目录配置

修改:

dir /data/redis
dbfilename dump.rdb

8.3 设置密码

方法一:兼容常见方式,使用 requirepass

在配置文件中加入或修改:

requirepass 5sTb7fHFbsYl6KmI6pvC^XMw!7Y^Pbc1

这是你最关心的“设置密码”方式,客户端连接时必须认证。


8.4 建议配置 master 默认认证密码

有些版本推荐 ACL 方式,生产上也可以同时设置默认用户密码:

aclfile /etc/redis/users.acl

然后创建 ACL 文件:

cat >/etc/redis/users.acl <<'EOF'
user default on >Redis@2025#Strong ~* &* +@all
EOF

设置权限:

chown redis:redis /etc/redis/users.acl
chmod 640 /etc/redis/users.acl

如果你使用了 ACL 文件,推荐不要同时混乱使用多套密码策略。 对于标准简单部署:

  • 只用 requirepass 就够了
  • 如果你明确要 ACL 管理,就用 aclfile

8.5 持久化建议

RDB 快照

建议保留:

save 900 1
save 300 10
save 60 10000

AOF

建议开启:

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

8.6 内存策略建议

根据你的机器规格(8 vCPU,通常中小型实例),如果 Redis 不是独占整机,建议先限制最大内存。

例如:

maxmemory 2gb
maxmemory-policy allkeys-lru

如果这台机器专门跑 Redis,可按实际内存再调整。 你没有提供内存大小,所以文档里给一个稳妥示例值。


9. 配置文件示例(可直接替换)

下面是一份可直接使用的 /etc/redis/redis.conf 核心示例:

bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300

daemonize no
supervised systemd
pidfile /var/run/redis_6379.pid

loglevel notice
logfile /var/log/redis/redis.log

databases 16

dir /data/redis
dbfilename dump.rdb

save 900 1
save 300 10
save 60 10000

appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec

requirepass Redis@2025#Strong

maxmemory 2gb
maxmemory-policy allkeys-lru

请把密码 Redis@2025#Strong 改成你自己的强密码。


10. 配置 systemd 服务

创建 systemd 服务文件:

cat >/etc/systemd/system/redis.service <<'EOF'
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli -a '5sTb7fHFbsYl6KmI6pvC^XMw!7Y^Pbc1' shutdown
Type=notify
TimeoutStopSec=30
Restart=always
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

注意:这里 ExecStop 中的密码要和 redis.confrequirepass 一致。 如果你修改了密码,这里也要同步修改。


11. 系统内核参数优化

生产环境建议设置 vm.overcommit_memory

临时生效:

sysctl vm.overcommit_memory=1

永久生效:

echo 'vm.overcommit_memory = 1' >/etc/sysctl.d/99-redis.conf
sysctl --system

关闭透明大页(建议):

临时关闭:

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

如需开机自动关闭,可写入 rc.local 或 systemd 脚本。


12. 启动 Redis

重新加载 systemd

systemctl daemon-reload

设置开机自启:

systemctl enable redis

启动服务:

systemctl start redis

查看状态:

systemctl status redis --no-pager -l

13. 验证安装和密码

13.1 查看监听端口

ss -lntp | grep 6379

13.2 本地连接测试

/usr/local/redis/bin/redis-cli

执行:

ping

如果设置了密码,会返回:

(error) NOAUTH Authentication required.

认证:

auth Redis@2025#Strong

再执行:

ping

返回:

PONG

13.3 一条命令带密码连接

/usr/local/redis/bin/redis-cli -a 'Redis@2025#Strong'

测试:

set test hello
get test

14. 设置环境变量(可选)

为了直接使用 redis-cliredis-server 命令:

cat >/etc/profile.d/redis.sh <<'EOF'
export PATH=/usr/local/redis/bin:$PATH
EOF
source /etc/profile.d/redis.sh

验证:

redis-cli -v
redis-server -v

15. 常用运维命令

启动

systemctl start redis

停止

systemctl stop redis

重启

systemctl restart redis

查看状态

systemctl status redis

查看日志

tail -f /var/log/redis/redis.log

登录 Redis

redis-cli -a 'Redis@2025#Strong'

查看配置

redis-cli -a 'Redis@2025#Strong' CONFIG GET requirepass
redis-cli -a 'Redis@2025#Strong' INFO

16. 修改 Redis 密码的方法

如果后续要改密码,有两种方式。


方法一:修改配置文件后重启

编辑:

vim /etc/redis/redis.conf

修改:

requirepass NewStrongPassword@456

然后同步修改 systemd 文件里的 ExecStop 密码:

vim /etc/systemd/system/redis.service

修改:

ExecStop=/usr/local/redis/bin/redis-cli -a 'NewStrongPassword@456' shutdown

重载并重启:

systemctl daemon-reload
systemctl restart redis

方法二:运行时修改(临时 + 持久化)

先认证登录:

redis-cli -a '旧密码'

执行:

CONFIG SET requirepass NewStrongPassword@456
CONFIG REWRITE

如果你用了 ACL,密码修改方式会不同。


17. 卸载方法

停止服务:

systemctl stop redis
systemctl disable redis

删除服务文件:

rm -f /etc/systemd/system/redis.service
systemctl daemon-reload

删除安装目录:

rm -rf /usr/local/redis-8.6.1
rm -f /usr/local/redis

删除配置和数据(谨慎):

rm -rf /etc/redis
rm -rf /data/redis
rm -rf /var/log/redis

删除用户:

userdel redis

18. 推荐的密码规范

建议 Redis 密码满足:

  • 长度不少于 16 位
  • 包含:
    • 大写字母
    • 小写字母
    • 数字
    • 特殊字符
  • 不使用弱密码,如:
    • 123456
    • redis123
    • admin@123

示例强密码:

Rds@8.6.1_2025#X9pL

19. 最简安装命令汇总版

如果你想快速执行,下面是精简版流程。

19.1 安装依赖

dnf -y install gcc gcc-c++ make tar wget perl vim net-tools lsof

19.2 编译安装

cd /usr/local/src
tar -xzf redis-8.6.1.tar.gz
cd redis-8.6.1
make -j$(nproc)
make PREFIX=/usr/local/redis-8.6.1 install
ln -sfn /usr/local/redis-8.6.1 /usr/local/redis

19.3 创建用户和目录

useradd -r -s /sbin/nologin redis
mkdir -p /etc/redis /data/redis /var/log/redis
chown -R redis:redis /data/redis /var/log/redis
cp /usr/local/src/redis-8.6.1/redis.conf /etc/redis/redis.conf

19.4 修改配置

cat >/etc/redis/redis.conf <<'EOF'
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize no
supervised systemd
pidfile /var/run/redis_6379.pid
loglevel notice
logfile /var/log/redis/redis.log
databases 16
dir /data/redis
dbfilename dump.rdb
save 900 1
save 300 10
save 60 10000
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
requirepass Rds@8.6.1_2025#X9pL
maxmemory 2gb
maxmemory-policy allkeys-lru
EOF

19.5 systemd

cat >/etc/systemd/system/redis.service <<'EOF'
[Unit]
Description=Redis In-Memory Data Store
After=network.target

[Service]
User=redis
Group=redis
ExecStart=/usr/local/redis/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/redis/bin/redis-cli -a 'Rds@8.6.1_2025#X9pL' shutdown
Type=notify
Restart=always
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF

19.6 启动

echo 'vm.overcommit_memory = 1' >/etc/sysctl.d/99-redis.conf
sysctl --system
systemctl daemon-reload
systemctl enable redis
systemctl start redis
systemctl status redis --no-pager -l

19.7 测试

/usr/local/redis/bin/redis-cli -a 'Rds@8.6.1_2025#X9pL' ping

返回:

PONG