Ubuntu Redis配置常見問題及解答
systemctl start redis
啟動時,日志報錯“Failed listening on port 6379 (tcp), aborting”或服務狀態顯示“exit-code”。ss -ltnp | grep 6379
或lsof -i :6379 -sTCP:LISTEN
定位占用進程,用kill -9 <PID>
終止進程;若需更換端口,修改/etc/redis/redis.conf
中的port
項(如port 6380
),并重啟Redis。redis-server
綁定低位端口權限(sudo setcap 'cap_net_bind_service=+ep' /usr/bin/redis-server
);② 改用高位端口(如6380),并更新systemd服務文件中的port
配置(若有)。grep -E "^(port|bind|dir|daemonize)" /etc/redis/redis.conf
檢查關鍵配置項,刪除重復的port
或bind
行;通過redis-server /etc/redis/redis.conf --test-config
測試配置文件語法。bind 127.0.0.1
僅允許本地訪問。修改/etc/redis/redis.conf
中的bind
項為0.0.0.0
(允許所有IP訪問)或特定IP(如bind 192.168.1.100
),并重啟Redis。protected-mode yes
禁止遠程訪問。修改protected-mode no
,或在protected-mode yes
時設置密碼(requirepass your_password
)。sudo ufw allow 6379/tcp
開放端口,或替換為自定義端口(如6380)。/etc/redis/redis.conf
中設置maxmemory
(如maxmemory 2gb
),限制Redis使用的最大內存。maxmemory-policy
(如allkeys-lru
,淘汰最近最少使用的鍵;volatile-lru
,僅淘汰設置了過期時間的鍵),根據業務需求選擇。/etc/redis/redis.conf
:① RDB配置(快照):save 900 1
(900秒內至少1個鍵修改則保存)、save 300 10
(300秒內至少10個鍵修改)、save 60 10000
(60秒內至少10000個鍵修改);dbfilename dump.rdb
(RDB文件名);dir /var/lib/redis
(保存目錄);② AOF配置(日志):appendonly yes
(開啟AOF);appendfilename "appendonly.aof"
(AOF文件名);appendfsync everysec
(每秒同步一次,平衡性能與數據安全)。dump.rdb
或appendonly.aof
文件(如使用rsync
或scp
復制到遠程服務器)。/var/lib/redis
),或連接時報錯“NOAUTH Authentication required”(未認證)。/var/lib/redis
):sudo chown -R redis:redis /var/lib/redis
(所有者為redis用戶)、sudo chmod -R 755 /var/lib/redis
(讀寫執行權限)。/etc/redis/redis.conf
中的requirepass
項(如requirepass your_password
),重啟Redis后,客戶端連接時需使用auth your_password
認證。/var/run/redis_6379.pid
文件未刪除,導致下次啟動時報錯“Can’t open PID file”。手動刪除殘留文件:sudo rm -f /var/run/redis_*.pid
,并重啟Redis。/etc/redis/redis.conf
,若修改了路徑,需確保systemd
服務文件(/etc/systemd/system/redis.service
)中的ExecStart
項指向正確路徑(如ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
)。sudo systemctl daemon-reload
使配置生效,再重啟Redis。