Redis淘汰策略
Redis中設(shè)置最大使用內(nèi)存,當(dāng)內(nèi)存數(shù)據(jù)集達(dá)到閾值時(shí),redis將對(duì)內(nèi)存數(shù)據(jù)進(jìn)行淘汰很钓,
淘汰規(guī)則有6種:
1,volatile_lru, 最近最少使用平斩,已設(shè)置過期時(shí)間的數(shù)據(jù)集中挑選進(jìn)行淘汰
2,volatile-ttl, 已設(shè)置過期時(shí)間的數(shù)據(jù)中即將過期的進(jìn)行淘汰
3咽块,volatile-random, 對(duì)設(shè)置過期時(shí)間的數(shù)據(jù)集中隨機(jī)淘汰
4绘面,allkey-lru,對(duì)所有數(shù)據(jù)侈沪,挑選最近最少使用的進(jìn)行淘汰
5揭璃,allkey-random,所有數(shù)據(jù)隨機(jī)淘汰
6亭罪,non 禁止淘汰
緩存穿透 和 緩存雪崩
緩存穿透
是指 當(dāng)再緩存中查詢一個(gè)不存在的數(shù)據(jù)時(shí)瘦馍,查不到會(huì)去數(shù)據(jù)庫查詢并緩存。而數(shù)據(jù)庫中也不存在应役,每次獲取緩存時(shí)都會(huì)去數(shù)據(jù)庫中查詢情组,這種情況就是緩存穿透
解決方案,對(duì)于數(shù)據(jù)庫中查詢不到的數(shù)據(jù)也進(jìn)行緩存箩祥,緩存一個(gè)空值呻惕。
緩存雪崩
大量同時(shí)間的的緩存更新造造成數(shù)據(jù)庫大量并發(fā)查詢,導(dǎo)致數(shù)據(jù)庫阻塞滥比。即為緩存雪崩。
緩存更新加鎖
均勻分布緩存更新時(shí)間
上線前進(jìn)行緩存預(yù)熱