下面由Redis教程欄目給大家介紹redis數(shù)據(jù)淘汰策略,希望對(duì)需要的朋友有所幫助!
1、淘汰簡(jiǎn)介
Redis官方給的警告,當(dāng)內(nèi)存不足時(shí),Redis會(huì)根據(jù)配置的緩存策略淘汰部分keys,以保證寫入成功。當(dāng)無(wú)淘汰策略時(shí)或沒(méi)有找到適合淘汰的key時(shí),Redis直接返回out of memory錯(cuò)誤。
2、最大緩存配置
在redis中,允許用戶設(shè)置的最大使用內(nèi)存大小是 512G。
在 redis 中,允許用戶設(shè)置最大使用內(nèi)存大小 server.maxmemory,在內(nèi)存限定的情況下是很有用的。譬如,在一臺(tái) 8G 機(jī)子上部署了 4 個(gè) redis 服務(wù)點(diǎn),每一個(gè)服務(wù)點(diǎn)分配 1.5G 的內(nèi)存大小,減少內(nèi)存緊張的情況,由此獲取更為穩(wěn)健的服務(wù)。
3、6種數(shù)據(jù)淘汰策略
1、volatile-lru:從已設(shè)置過(guò)期時(shí)間的數(shù)據(jù)集(server.db[i].expires)中挑選最近最少使用的數(shù)據(jù)淘汰
2、volatile-ttl:從已設(shè)置過(guò)期時(shí)間的數(shù)據(jù)集(server.db[i].expires)中挑選將要過(guò)期的數(shù)據(jù)淘汰
3、volatile-random:從已設(shè)置過(guò)期時(shí)間的數(shù)據(jù)集(server.db[i].expires)中任意選擇數(shù)據(jù)淘汰
4、allkeys-lru:從數(shù)據(jù)集(server.db[i].dict)中挑選最近最少使用的數(shù)據(jù)淘汰
5、allkeys-random:從數(shù)據(jù)集(server.db[i].dict)中任意選擇數(shù)據(jù)淘汰
6、no-enviction(驅(qū)逐):禁止驅(qū)逐數(shù)據(jù)
4、建議
了解了Redis的淘汰策略之后,在平時(shí)使用時(shí)應(yīng)盡量主動(dòng)設(shè)置/更新key的expire時(shí)間,主動(dòng)剔除不活躍的舊數(shù)據(jù),有助于提升查詢性能。
Redis過(guò)期數(shù)據(jù)淘汰是指將鍵值對(duì)都刪除掉,請(qǐng)了解?。。。。。。。。。。。?!