redis作為優秀的中間快取件,時常會儲存大量的資料,即使採取了集群部署來動態擴容,也應該即使的整理記憶體,維持系統效能。在redis中有兩種解決方案,一是為資料設定超時時間,二是採用lru演算法動態將不用的資料刪除。記憶體管理
的一種頁面置換演算法,對於在記憶體中但又不用的
資料塊(記憶體塊)叫做
lru,作業系統會根據哪些資料屬於
lru而將其移出記憶體而騰出空間來載入另外的資料。
關於redis中記憶體的進製換算:
記憶體設定,在redis.conf檔案的537行可以進行設定:
下面是重點部分,redis中的6種記憶體管理策略:
1.volatile-lru:設定超時時間的資料中,刪除最不常使用的資料.
2.allkeys-lru:查詢所有的key中最近最不常使用的資料進行刪除,這是應用最廣泛的策略.
3.volatile-random:在已經設定了超時的資料中隨機刪除.
4.allkeys-random:查詢所有的key,之後隨機刪除.
5.volatile-ttl:查詢全部設定超時時間的資料,之後排序,將馬上將要過期的資料進行刪除操作.
6.noeviction:如果設定為該屬性,則不會進行刪除操作,如果記憶體溢位則報錯返回.
設定需要的記憶體管理策略:
redis的記憶體維護策略
lfulru與lfu差別 redis作為優秀的中間快取件,時常會儲存大量的資料,即使採取了集群部署來動態擴容,也應該即使的整理記憶體,維持系統效能。redis官方也給出警告,當記憶體不足時,redis會根據配置的快取策略淘汰大部分keys,以保證寫入成功。當無淘汰策略時或沒有找到合適的key時,re...
redis記憶體管理與維護
expire key time 以秒為單位 常用方式 setx string key int seconds,string value 字串獨有方式查詢當前key的有效期 ttl key 如果返回值為 1 表示key永久有效 返回值為 2表示失效,從記憶體中銷毀lru是記憶體管理的一種頁面置換演算法...
Redis的記憶體淘汰策略
記憶體淘汰策略分類 早期版本的 redis 有以下 6 種淘汰策略 noeviction 不淘汰任何資料,當記憶體不足時,新增操作會報錯,redis 預設記憶體淘汰策略 allkeys lru 淘汰整個鍵值中最久未使用的鍵值 allkeys random 隨機淘汰任意鍵值 volatile lru ...