Ubuntu系統監控Redis內存使用的常用方法
Redis自帶的INFO命令是監控內存的基礎工具,可通過以下細分命令獲取針對性數據:
redis-cli INFO memory,返回結果包含used_memory(Redis實際使用的內存字節數)、used_memory_human(易讀格式,如KB/MB/GB)、used_memory_rss(操作系統分配給Redis的內存字節數)、total_system_memory(系統總內存)等關鍵指標。其中,used_memory反映Redis自身內存占用,used_memory_rss反映操作系統層面的內存消耗,若兩者差距過大可能存在內存碎片。redis-cli INFO memory | grep -E "used_memory|used_memory_human|used_memory_rss",可過濾出內存相關的核心數據,便于快速查看。redis-cli MONITOR,它會輸出所有客戶端的實時命令及執行時間,但需注意該命令會增加Redis負載,不建議長期開啟。可視化工具能更直觀地展示內存趨勢,適合生產環境長期監控:
sudo apt-get install redisinsight;redisinsight --uri redis://localhost:6379連接本地Redis實例;sudo snap install redis-desktop-manager;localhost:6379)即可連接;INFO MEMORY命令,可查看詳細內存信息,同時支持鍵值瀏覽、批量操作等功能。若需要集中監控多個Redis實例或集成到現有監控體系,可使用Prometheus+Grafana組合:
wget https://github.com/oliver006/redis_exporter/releases/download/v1.22.0/redis_exporter-v1.22.0.linux-amd64.tar.gz
tar -xzf redis_exporter-v1.22.0.linux-amd64.tar.gz
sudo mv redis_exporter /usr/local/bin/
prometheus.yml文件,添加Redis Exporter的抓取任務:scrape_configs:
- job_name: 'redis'
static_configs:
- targets: ['localhost:9121'] # Redis Exporter默認端口
./prometheus --config.file=prometheus.yml啟動服務,訪問http://localhost:9090進入Web UI。763的官方模板),即可查看內存使用量的實時儀表盤,支持設置告警規則(如內存使用超過80%時觸發告警)。監控時需重點關注以下指標,以判斷Redis內存狀態:
used_memory需考慮優化內存碎片(如執行MEMORY PURGE命令);used_memory_rss/used_memory):內存碎片率,理想值為1(無碎片),若大于1.5說明碎片較多,需優化。