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