中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Redis常見的問題有哪些

本篇內(nèi)容主要講解“redis常見的問題有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Redis常見的問題有哪些”吧!

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站制作等服務(wù)項目。核心團(tuán)隊均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗,服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:不銹鋼雕塑等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗,同時也獲得了客戶的一致贊譽(yù)!

隨著系統(tǒng)訪問量的提高,復(fù)雜度的提升,響應(yīng)性能成為一個重點的關(guān)注點。而緩存的使用成為一個重點。redis 作為緩存中間件的一個佼佼者,成為了面試必問項目。

本文分享一下Redis幾道常見的面試題:

緩存雪崩

1.1 什么是緩存雪崩?

如果我們的緩存掛掉了,這意味著我們的全部請求都跑去數(shù)據(jù)庫了。

Redis常見的問題有哪些

我們都知道Redis不可能把所有的數(shù)據(jù)都緩存起來(內(nèi)存昂貴且有限),所以Redis需要對數(shù)據(jù)設(shè)置過期時間,并采用的是惰性刪除+定期刪除兩種策略對過期鍵刪除。

如果緩存數(shù)據(jù)設(shè)置的過期時間是相同的,并且Redis恰好將這部分?jǐn)?shù)據(jù)全部刪光了。這就會導(dǎo)致在這段時間內(nèi),這些緩存同時失效,全部請求到數(shù)據(jù)庫中。

這就是緩存雪崩:Redis掛掉了,請求全部走數(shù)據(jù)庫。

緩存雪崩如果發(fā)生了,很可能就把我們的數(shù)據(jù)庫搞垮,導(dǎo)致整個服務(wù)癱瘓!

1.2 如何解決緩存雪崩?

在緩存的時候給過期時間加上一個隨機(jī)值,這樣就會大幅度的減少緩存在同一時間過期。

對于“Redis掛掉了,請求全部走數(shù)據(jù)庫”這種情況,我們可以有以下的思路:

事發(fā)前:實現(xiàn)Redis的高可用(主從架構(gòu)+Sentinel 或者Redis Cluster),盡量避免Redis掛掉這種情況發(fā)生。

事發(fā)中:萬一Redis真的掛了,我們可以設(shè)置本地緩存(ehcache)+限流(hystrix),盡量避免我們的數(shù)據(jù)庫被干掉(起碼能保證我們的服務(wù)還是能正常工作的)

事發(fā)后:redis持久化,重啟后自動從磁盤上加載數(shù)據(jù),快速恢復(fù)緩存數(shù)據(jù)。

緩存穿透

2.1 什么是緩存穿透

緩存穿透是指查詢一個一定不存在的數(shù)據(jù)。由于緩存不命中,并且出于容錯考慮,如果從數(shù)據(jù)庫查不到數(shù)據(jù)則不寫入緩存,這將導(dǎo)致這個不存在的數(shù)據(jù)每次請求都要到數(shù)據(jù)庫去查詢,失去了緩存的意義。

Redis常見的問題有哪些

這就是緩存穿透:

請求的數(shù)據(jù)在緩存大量不命中,導(dǎo)致請求走數(shù)據(jù)庫。

緩存穿透如果發(fā)生了,也可能把我們的數(shù)據(jù)庫搞垮,導(dǎo)致整個服務(wù)癱瘓!

2.2 如何解決緩存穿透?

解決緩存穿透也有兩種方案:

由于請求的參數(shù)是不合法的(每次都請求不存在的參數(shù)),于是我們可以使用布隆過濾器(BloomFilter)或者壓縮filter提前攔截,不合法就不讓這個請求到數(shù)據(jù)庫層!

當(dāng)我們從數(shù)據(jù)庫找不到的時候,我們也將這個空對象設(shè)置到緩存里邊去。下次再請求的時候,就可以從緩存里邊獲取了。

這種情況我們一般會將空對象設(shè)置一個較短的過期時間。

緩存與數(shù)據(jù)庫雙寫一致

3.1 對于讀操作,流程是這樣的

如果我們的數(shù)據(jù)在緩存里邊有,那么就直接取緩存的。

如果緩存里沒有我們想要的數(shù)據(jù),我們會先去查詢數(shù)據(jù)庫,然后將數(shù)據(jù)庫查出來的數(shù)據(jù)寫到緩存中。最后將數(shù)據(jù)返回給請求。

3.2 什么是緩存與數(shù)據(jù)庫雙寫一致問題?

如果僅僅查詢的話,緩存的數(shù)據(jù)和數(shù)據(jù)庫的數(shù)據(jù)是沒問題的。但是,當(dāng)我們要更新時候呢?各種情況很可能就造成數(shù)據(jù)庫和緩存的數(shù)據(jù)不一致了。

這里不一致指的是:數(shù)據(jù)庫的數(shù)據(jù)跟緩存的數(shù)據(jù)不一致

Redis常見的問題有哪些

從理論上說,只要我們設(shè)置了鍵的過期時間,我們就能保證緩存和數(shù)據(jù)庫的數(shù)據(jù)最終是一致的。因為只要緩存數(shù)據(jù)過期了,就會被刪除。隨后讀的時候,因為緩存里沒有,就可以查數(shù)據(jù)庫的數(shù)據(jù),然后將數(shù)據(jù)庫查出來的數(shù)據(jù)寫入到緩存中。

除了設(shè)置過期時間,我們還需要做更多的措施來盡量避免數(shù)據(jù)庫與緩存處于不一致的情況發(fā)生。

到此,相信大家對“Redis常見的問題有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

網(wǎng)站標(biāo)題:Redis常見的問題有哪些
文章網(wǎng)址:http://www.rwnh.cn/article16/jeecdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名商城網(wǎng)站、網(wǎng)站營銷營銷型網(wǎng)站建設(shè)、Google品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
镶黄旗| 武穴市| 丘北县| 梓潼县| 郴州市| 哈密市| 满城县| 巧家县| 滦南县| 阿拉善右旗| 东源县| 永春县| 大城县| 开阳县| 旬阳县| 青海省| 榆社县| 吉林市| 利津县| 锡林郭勒盟| 宾阳县| 广宁县| 新兴县| 肥东县| 凤山县| 务川| 五常市| 米林县| 彭泽县| 木兰县| 上杭县| 阜新| 环江| 娄烦县| 乐亭县| 荣昌县| 信宜市| 筠连县| 南雄市| 平江县| 开平市|