redis緩存知識(shí)點(diǎn):
一、緩存穿透
緩存穿透是指查詢一個(gè)緩存和數(shù)據(jù)庫(kù)中都沒有的數(shù)據(jù),由于大部分緩存策略是被動(dòng)加載的,并且出于容錯(cuò)考慮,如果從存儲(chǔ)層查不到數(shù)據(jù)則不寫入緩存,這將導(dǎo)致這個(gè)不存在的數(shù)據(jù)每次請(qǐng)求都要到存儲(chǔ)層去查詢,失去了緩存的意義。用戶不斷發(fā)起請(qǐng)求,在流量大時(shí),就可能對(duì)DB形成巨大的壓力,利用不存在的key頻繁攻擊應(yīng)用也是很大的問題。
二、緩存擊穿
緩存擊穿是指緩存中的一個(gè)熱點(diǎn)Key(比如一個(gè)秒殺商品),在某個(gè)時(shí)間點(diǎn)過期的時(shí)候,恰好在這個(gè)時(shí)間點(diǎn)訪問量劇增,對(duì)這個(gè)Key有大量的并發(fā)請(qǐng)求過來,請(qǐng)求發(fā)現(xiàn)緩存過期一般都會(huì)從后端DB加載數(shù)據(jù)并回設(shè)回緩存,但就在緩存中的數(shù)據(jù)還沒有完全從DB中加載過來的這個(gè)時(shí)間段期間,并發(fā)瞬間造成大量請(qǐng)求直接擊穿到DB,對(duì)DB形成巨大壓力。
緩存擊穿,又叫熱點(diǎn)key問題,是這三個(gè)問題中最經(jīng)典的一個(gè)問題。
三、緩存雪崩
緩存雪崩,是指緩存中設(shè)置了大批量相同過期時(shí)間的數(shù)據(jù)同時(shí)過期失效,而在這一刻訪問量劇增,緩存近乎失效,所有請(qǐng)求全部轉(zhuǎn)向DB,DB瞬時(shí)壓力過重雪崩,甚至down機(jī)。和緩存擊穿不同的是,緩存擊穿指并發(fā)查同一條數(shù)據(jù),緩存雪崩是不同數(shù)據(jù)都過期了,很多數(shù)據(jù)都查不到從而查數(shù)據(jù)庫(kù)。
對(duì)于redis緩存我們的程序中會(huì)經(jīng)常用到,有時(shí)候我們改變了部分功能,要是進(jìn)行查看效果的話就要把原來的緩存清除掉,針對(duì)redis如何進(jìn)行清理緩存,下面小編就給大家介紹兩種方法
對(duì)于redis的各種配置,我這里就不多講了,我們運(yùn)行redis看是否正常
我們清除緩存的時(shí)候最好關(guān)閉redis,打開redis的安裝路徑,找到redis-cli.exe
雙擊redis-cli.exe,彈出redis-cli的對(duì)話框,輸入host和密碼
在上面的對(duì)話框里執(zhí)行dbsize命令
然后執(zhí)行flushall命令就可以了
其實(shí)還有一種更加直接的方式,我們找到安裝目錄
其實(shí)redis的緩存主要是存儲(chǔ)在dump.rdb這個(gè)文件中的,我們只需要把這個(gè)文件刪除掉就可以了,然后根據(jù)需要可以重新啟動(dòng)一下就可以
您可能感興趣的文章:- Redis緩存穿透出現(xiàn)原因及解決方案
- java操作Redis緩存設(shè)置過期時(shí)間的方法
- SpringBoot2整合Redis緩存三步驟代碼詳解
- Spring Cache手動(dòng)清理Redis緩存
- SpringBoot redis分布式緩存實(shí)現(xiàn)過程解析
- mybatis plus使用redis作為二級(jí)緩存的方法
- 提高redis緩存命中率的方法
- Redis緩存常用4種策略原理詳解