欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)邀請碼778899分享:Java面試 redis 篇

柚子快報(bào)邀請碼778899分享:Java面試 redis 篇

http://yzkb.51969.com/

Java面試 redis 篇

redis的使用場景:

緩存,分布式鎖,計(jì)數(shù)器,保存token 消息隊(duì)列,延遲隊(duì)列

項(xiàng)目中真實(shí)使用過的redis 緩存:緩存三兄弟(穿透,擊穿,雪崩) 雙寫一致 ,持久化,數(shù)據(jù)過期策略,數(shù)據(jù)淘汰策略, 分布式鎖:setnx redisson 消息隊(duì)列 延遲隊(duì)列

如果發(fā)生了 緩存的穿透 擊穿 雪崩 該如何解決

1.搞清楚啥時(shí)緩存穿透:

解決方案1.

緩存空數(shù)據(jù),查詢返回的數(shù)據(jù)為空,仍然把這個(gè)空結(jié)果進(jìn)行緩存 優(yōu)點(diǎn)是:簡單。缺點(diǎn)是消耗內(nèi)存,會(huì)出現(xiàn)數(shù)據(jù)不一致問題

為何會(huì)出現(xiàn)數(shù)據(jù)不一致問題

如上圖當(dāng)根據(jù)id=100來查詢,數(shù)據(jù)庫不存在這個(gè)數(shù)據(jù),然后按照方案一的解決 緩存一個(gè)空值,如果后續(xù),這個(gè)id=100 的位置上有了數(shù)據(jù),就會(huì)導(dǎo)致如果還根據(jù)id=100 來查詢,查詢的結(jié)果為空,實(shí)際數(shù)據(jù)庫有數(shù)據(jù),這就造成數(shù)據(jù)不一致的問題。

解決方案2.

優(yōu)點(diǎn):內(nèi)存占用較少,沒有多余的key 缺點(diǎn);實(shí)現(xiàn)較復(fù)雜,存在誤判

緩存 擊穿問題

1.啥是緩存擊穿:給一個(gè)key 設(shè)置了過期時(shí)間,當(dāng)key過期的時(shí)候 ,恰好對這個(gè)key 有大量的請求發(fā)過來,因?yàn)榇藭r(shí)redis中是沒有數(shù)據(jù)的,這些請求瞬間可能就將數(shù)據(jù)庫壓垮。

解決方案:

1.互斥鎖 2.邏輯過期

這里在使用邏輯過期中當(dāng)線程一 走到第三步 要開啟新的線程來進(jìn)行緩存的重建,此時(shí),線程一并不會(huì)等待線程2 緩存重建完成,鎖釋放了之后才返回?cái)?shù)據(jù),而是直接返回?cái)?shù)據(jù),這個(gè)數(shù)據(jù)為舊數(shù)據(jù),在緩存重建過程中,如果有其他的線程過來查詢,此時(shí)獲取鎖是失敗的,同樣是返回舊數(shù)據(jù)。

緩存雪崩

啥是緩存雪崩:指的是在同一時(shí)間段有大量的緩存key同時(shí)失效,或者redis服務(wù)器宕機(jī),導(dǎo)致大量請求到達(dá)數(shù)據(jù)庫,帶來巨大壓力

解決方案

1.給不同的key過期時(shí)間上加一個(gè)隨機(jī)值 2.因?yàn)閞edis服務(wù)宕機(jī)發(fā)生的:利用redis集群提高服務(wù)的高可用,如哨兵模式 集群模式 3.給緩存業(yè)務(wù)添加降級限流策略 4.給業(yè)務(wù)添加多級緩存

redis作為緩存,mysql的數(shù)據(jù)如何與redis進(jìn)行同步呢,(雙寫一致性)

對于一致性要求高的: 讀操作:緩存命中直接返回,緩存為命中,寫入緩存,設(shè)置超時(shí)時(shí)間 寫操作:延遲雙刪 無論是先刪除緩存還是先修改數(shù)據(jù) 都會(huì)出現(xiàn)問題 先刪除緩存,修改數(shù)據(jù)庫,等一段時(shí)間,再去刪除一次緩存。 兩次刪除的第二次刪除就是為了避免臟數(shù)據(jù)的出現(xiàn) 為何要延時(shí)刪除: 因?yàn)閿?shù)據(jù)庫是主從架構(gòu),要等主數(shù)據(jù)庫將數(shù)據(jù)同步到從數(shù)據(jù)庫之后

使用讀寫鎖來保證數(shù)據(jù)強(qiáng)一致性(性能低)

共享鎖:讀鎖(readlock) 加鎖之后其他線程可以進(jìn)行讀取 排他鎖:獨(dú)占鎖(writerlock) 加鎖之后,阻塞其他線程讀寫操作 一般放入緩存中的數(shù)據(jù)大部分都是讀多寫少 當(dāng)去讀取數(shù)據(jù)的時(shí)候可以添加共享鎖,寫數(shù)據(jù)時(shí)加排他鎖

具體的代碼邏輯

![在這里插入圖片描述](https://img-blog.csdnimg.cn/direct/117f7da5767d4bdeac464cd0d6acf2a0.png#pic

面試總結(jié):

redis持久化是如何做的?

RDB AOF

redis的數(shù)據(jù)過期策略

問: 假如redis 的key 過期了 會(huì)立即刪除嗎?

redis數(shù)據(jù)淘汰策略

柚子快報(bào)邀請碼778899分享:Java面試 redis 篇

http://yzkb.51969.com/

精彩文章

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19536406.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄