redis內存淘汰策略

1 volatile-LRU(least recently use ) 最近最久未用策略 底層是一個隊列(用hashSet保證無重複元素),鏈表是限制容量的鏈表,也就是不定時間段內,固定數量的鍵,隊尾就是最久未使用的,隊首就是最近被使用的,那你可能會問,那比鏈表尾端更久遠的鍵怎麼了呢,我認爲在一個key,被擠出 LRU 隊列後,這個鍵就要被回收,當新的key生成,而內存不夠用的時候,首先這個key會加入LRU隊列,並把隊尾key擠出,同時釋放隊尾key所佔用的內存

2 allkeys-LRU

3 volatile-random

4 allkeys-random

5 volatile-TTL(time to live) 剩餘生存時間策略 從設置了過期時間的key,挑選剩餘生存時間最少的

6 noevicition 驅逐策略 不再響應寫請求

注:volatile(易揮發的) 類似於到了過期時間就消失的,這裏就是指被設置了過期時間的在這裏插入圖片描述