11 KiB
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.conf的requirepass一致。 如果你修改了密码,这里也要同步修改。
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-cli、redis-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 位
- 包含:
- 大写字母
- 小写字母
- 数字
- 特殊字符
- 不使用弱密码,如:
123456redis123admin@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