redis記憶體滿了怎麼解決
redis記憶體滿了解決方法:
1,增加記憶體。
2,使用記憶體淘汰策略。
3,Redis集群。
重點介紹下2、3:
第二點:
我們知道,redis設定設定檔的maxmemory參數,可以控制其最大可用記憶體大小(位元組)。
那麼當所需內存,超過maxmemory怎麼辦?
這時候就該設定檔中的maxmemory-policy出場了。
其預設值是noeviction。
下面我將列出當可用記憶體不足時,刪除redis鍵具有的淘汰規則。
規則說明:
1、volatile-lru
使用LRU演算法刪除一個鍵(只對設定了生存時間的鍵)
2、 allkeys-lru
使用LRU演算法刪除一個鍵
3、volatile-random
隨機刪除一個鍵(只對設定了生存時間的鍵)
4、allkeys-random
隨機刪除一個鍵
5、volatile-ttl
刪除生存時間最近的一個鍵
6、noeviction
不刪除鍵,只回傳錯誤
LRU演算法,least RecentlyUsed,最近最少使用演算法。也就是說預設刪除最近最少使用的鍵。
但是一定要注意一點! redis中並不會準確的刪除所有鍵中最近最少使用的鍵,而是隨機抽取3個鍵,刪除這三個鍵中最近最少使用的鍵。
那麼3這個數字也是可以設定的,對應位置是設定檔中的maxmeory-samples.
三、叢集怎麼做
Redis只支援單一實例,內存一般最多10~20GB。對於內存動輒100~200GB的系統,就需要透過叢集來支援了。
Redis叢集有三種方式:客戶端分片、代理分片、RedisCluster(在之後一篇文章詳細說一下。)
1、客戶端分片
透過業務代碼自行實現路由
優勢:可以自行控制分片演算法、效能比代理的好
劣勢:維護成本高、擴容/縮容等維運操作都需要自己研發
2、代理程式分片
代理程式接收到來自業務程式的資料請求,根據路由規則,將這些請求分發給正確的Redis實例並傳回給業務程式。使用類似Twemproxy、Codis等中間件實作。
優點:運作方便、程式不用關心如何連結Redis實例
劣勢:會帶來效能消耗(大概20%)、無法平滑擴充/縮容,需要執行腳本遷移數據,不方便(Codis在Twemproxy基礎上優化並實現了預分片來達到Auto Rebalance)。
3、Redis Cluster
優點:官方叢集解決方案、無中心節點,和客戶端直連,效能較好
劣勢:方案太重、無法平滑擴容/縮容,需要執行對應的腳本,不方便、太新,沒有相應成熟的解決案例
更多Redis相關知識,請訪問Redis使用教程欄目!
以上是redis記憶體滿了怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

本文討論了在Redis群集中選擇碎片鍵,並強調了它們對性能,可伸縮性和數據分佈的影響。關鍵問題包括確保均勻數據分配,與訪問模式保持一致以及避免常見錯誤l

本文討論了在REDIS中實施身份驗證和授權,重點是實現身份驗證,使用ACL以及確保REDIS的最佳實踐。它還涵蓋了管理用戶權限和工具以增強重新安全性。

本文討論了使用REDIS進行工作隊列和背景處理,詳細的設置,作業定義和執行。它涵蓋了原子運營和工作優先級等最佳實踐,並解釋了REDIS如何提高處理效率。

本文討論了在REDIS中實施和管理緩存無效的策略,包括基於時間的到期,事件驅動的方法和版本控制。它還涵蓋了緩存到期的最佳實踐和監視和自動的工具

文章討論了使用Redis CLI,Redis Insight和Datadog和Prometheus等工具等工具進行監視REDIS群集的性能和健康。

本文討論了在Web應用程序中使用REDIS進行會話管理,詳細介紹設置,諸如可伸縮性和性能以及安全措施之類的好處。
