volatile-lru:從已設置過期時間的數據集(server.db[i].expires)中挑選最近最
少使用的數據淘汰
volatile-ttl:從已設置過期時間的數據集(server.db[i].expires)中挑選將要過
期的數據淘汰
volatile-random:從已設置過期時間的數據集(server.db[i].expires)中任意
選擇數據淘汰
allkeys-lru:從數據集(server.db[i].dict)中挑選最近最少使用的數據淘汰
allkeys-random:從數據集(server.db[i].dict)中任意選擇數據淘汰
no-enviction(驅逐):禁止驅逐數據
注意這里的 6 種機制,volatile 和 allkeys 規定了是對已設置過期時間的數據集淘
汰數據還是從全部數據集淘汰數據,后面的 lru、ttl 以及 random 是三種不同的
淘汰策略,再加上一種 no-enviction 永不回收的策略。
使用策略規則:
1、如果數據呈現冪律分布,也就是一部分數據訪問頻率高,一部分數據訪問頻率
低,則使用 allkeys-lru
2、如果數據呈現平等分布,也就是所有的數據訪問頻率都相同,則使用
allkeys-random