Redis在Ubuntu上的優化設置指南
maxmemory參數設置Redis使用的最大內存(如maxmemory 4gb),防止內存溢出導致系統崩潰。需根據服務器內存容量和應用需求調整,建議預留10%-20%內存給系統和其他進程。maxmemory-policy選擇淘汰策略。常用策略包括allkeys-lru(淘汰所有鍵中最近最少使用的鍵,適用于大多數場景)和volatile-lru(僅淘汰設置了過期時間的鍵,適用于有明確過期時間的業務)。save 900 1(900秒內至少1次寫操作觸發快照)、save 300 10(300秒內至少10次寫操作觸發快照)。appendonly yes(啟用AOF)、appendfsync everysec(每秒同步一次,平衡性能與數據安全)。aof-use-rdb-preamble yes),結合RDB的快速恢復和AOF的增量備份優勢,提升恢復效率和數據安全性。BGREWRITEAOF命令(或配置auto-aof-rewrite-percentage 100、auto-aof-rewrite-min-size 64mb)減小AOF文件大小,提高恢復速度。bind參數為服務器具體IP(如bind 192.168.1.100),避免監聽所有接口,提升安全性。tcp-backlog(tcp-backlog 4096):提高并發連接處理能力,避免連接堆積。tcp-keepalive(tcp-keepalive 60):檢測死連接,釋放無效資源。timeout參數設置客戶端閑置超時時間(如timeout 300,單位:秒),釋放長期不活動的連接。/etc/security/limits.conf,添加redis soft nofile 65535、redis hard nofile 65535(允許Redis打開更多文件描述符,應對高并發連接)。sysctl -w net.ipv4.tcp_tw_reuse=1(復用TIME_WAIT狀態的連接)、sysctl -w net.core.somaxconn=4096(增加TCP連接隊列長度)。redis.conf中設置disable_scripting yes(禁用Lua腳本)、slowlog-log-slower-than 0(關閉慢查詢日志),減少資源消耗。redis-cli --stat(實時查看內存、命令執行數等指標)、redis-cli --latency(檢測網絡延遲)或第三方工具(如RedisInsight、Prometheus+Grafana)監控Redis性能。slowlog-log-slower-than 10000(記錄執行時間超過10毫秒的命令)、slowlog-max-len 128(保留最近128條慢查詢記錄),通過SLOWLOG GET命令分析慢查詢,優化高頻慢命令(如避免KEYS *這種全表掃描命令)。SCAN命令(避免阻塞)檢查過期鍵情況。