解決Ubuntu下Redis內存不足問題可從配置優化、系統調優和監控管理三方面入手,具體方法如下:
/etc/redis/redis.conf,設置maxmemory參數為合理值(如服務器物理內存的50%-70%),避免Redis占用過多內存。maxmemory-policy為allkeys-lru或volatile-lru,當內存不足時自動淘汰最近最少使用的鍵。fallocate創建交換文件(如sudo fallocate -l 4G /swapfile),并啟用它(sudo swapon /swapfile),避免Redis因內存不足被系統殺死。/etc/sysctl.conf,設置vm.swappiness=10(降低交換分區使用頻率),減少系統頻繁使用Swap。expire設置鍵過期時間,或通過FLUSHALL定期清理無用數據。redis-cli info memory查看內存占用,或使用htop、top監控系統內存狀態。mem_fragmentation_ratio(內存碎片率)過高(>1.5),可通過重啟Redis或優化數據結構減少碎片。注意:修改配置前需備份數據,建議在測試環境驗證后再應用到生產環境[1,2,3,4,5,6,7,8,9,10,11]。