Redis在Debian上的连接管理
小樊
38
2025-12-23 02:04:42
Redis 在 Debian 上的连接管理
一 安装与基础连通性
- 安装服务端:sudo apt update && sudo apt install redis-server;启动与自启:sudo systemctl start redis-server && sudo systemctl enable redis-server;检查状态:sudo systemctl status redis-server。
- 仅本机连接测试:redis-cli ping,应返回 PONG。
- 远程连接准备:安装客户端工具 sudo apt install redis-tools;连接命令:redis-cli -h -p 6379 -a ;远程连通性测试:redis-cli -h ping。
- 配置文件路径:/etc/redis/redis.conf(查看与修改常用参数)。
二 服务端连接相关配置
- 监听地址:默认 bind 127.0.0.1 ::1(仅本地)。如需远程访问,注释或改为 bind 0.0.0.0(或指定内网接口),并确认 protected-mode 与密码策略配合。
- 端口与保护:port 6379;生产环境建议保持 protected-mode yes 并配置 requirepass,避免无鉴权暴露。
- 并发与超时:maxclients 10000(按业务与资源调优);timeout 0(不主动断开空闲客户端,可按需设置)。
- 变更生效:修改 /etc/redis/redis.conf 后执行 sudo systemctl restart redis-server。
- 监听验证:ss -an | grep 6379 或 netstat -lntp | grep 6379,应看到 0.0.0.0:6379 或 [::]:6379 处于 LISTEN。
三 防火墙与网络连通性
- UFW(Debian 常见):sudo ufw allow proto tcp from <TRUSTED_SUBNET> to any port 6379;仅允许受信网段访问。
- firewalld(若使用 firewalld):sudo firewall-cmd --add-port=6379/tcp --permanent && sudo firewall-cmd --reload。
- 云主机安全组:在控制台放行 6379/TCP 的入方向规则,来源限定为业务网段或跳板机。
四 连接数监控与调优
- 服务端观察:redis-cli INFO 查看 connected_clients、instantaneous_ops_per_sec、used_memory 等关键指标;按需调整 maxclients 与系统资源。
- 客户端连接池建议:
- 连接获取与命令超时:connectTimeout/commandTimeout 建议 2s 左右。
- TCP Keepalive:idle 30s、interval 10s、count 3,提升长连接稳定性。
- 池容量:maxTotal 以“单连接 QPS × 期望总 QPS”估算,并遵循“客户端节点数 × maxTotal ≤ Redis 最大连接数”;maxIdle 贴近业务峰值,minIdle 10–20;maxWaitMillis 1000ms;开启 testWhileIdle 维持连接健康。
五 常见故障排查清单
- 服务与日志:sudo systemctl status redis-server;sudo journalctl -u redis-server.service;必要时 tail -f /var/log/redis/redis-server.log。
- 端口占用:ss -tuln | grep 6379 或 netstat -tuln | grep 6379,释放冲突进程或调整端口。
- 本地连通:redis-cli -h 127.0.0.1 -p 6379 ping;远程连通:redis-cli -h ping。
- 防火墙/安全组:确认 6379/TCP 已放行且仅对受信来源开放。
- 资源与权限:free -h、df -h 检查内存与磁盘;确保数据目录(如 /var/lib/redis)权限正确(redis:redis)。
- 高并发连接:必要时调大内核 somaxconn(如 1024)、合理设置 maxclients 与客户端池参数,避免连接风暴。