配置語法
# redis.conf
bind 10.10.11.11 10.11.11.12 10.10.11.13
# 或
bind 192.168.1.100 10.0.0.5
**語法正確**:`bind` 後跟空格分隔的 IP 列表,支援 IPv4/IPv6 混合。
啟動失敗常見原因與排查
- IP 不存在於本機網卡:`bind` 的 IP **必須已配置在本機介面上**(`ip addr show` 可見)。若 IP 是虛擬/漂移 IP,需先由 `keepalived`/`heartbeat` 掛載上才能啟動 Redis。
- 權限不足:非 root 啟動綁定 `< 1024` 埠口,或綁定非本機 IP 被內核拒絕。
- 配置檔編碼/隱形字元:`cat -A redis.conf` 檢查 `^M` (Windows 換行) 或不可見字元。
- SELinux/AppArmor 阻擋:`audit.log` 檢查 `avc: denied`,臨時 `setenforce 0` 驗證。
- 端口衝突:其他進程佔用 6379,`netstat -ntlp | grep 6379`。
標準排查流程
# 1. 前台啟動看詳細錯誤
redis-server /etc/redis.conf
# 2. 查看日誌 (若 daemonize yes)
tail -f /var/log/redis/redis.log
# 3. 檢查 IP 綁定狀態
ss -ntlp | grep redis
ip addr show | grep -E '10\.10\.11\.11|10\.11\.11\.12|10\.10\.11\.13'
生產環境最佳實踐
- **僅綁定內網 IP**,**嚴禁 `bind 0.0.0.0` 或公網 IP**(除非有防火牆/安全組嚴格限制來源)。
- 啟用 `requirepass` / `ACL` (Redis 6+),設定 `protected-mode yes`。
- 使用 `systemd` 管理,配置 `LimitNOFILE=65535`、`supervised systemd`。
- 多 IP 場景通常為 **主從/哨兵/集群** 節點間通訊,建議 **單獨規劃複寫網段**,不與業務網段混用。
總結
`bind ip1 ip2 ip3` 語法正確。啟動失敗**多半是 IP 未在本機網卡上、權限、或 SELinux**。前台啟動看報錯、核對 `ip addr`、檢查日誌,三步定位。