redis緩存知識(shí)點(diǎn):
網(wǎng)站設(shè)計(jì)制作過(guò)程拒絕使用模板建站;使用PHP+MYSQL原生開(kāi)發(fā)可交付網(wǎng)站源代碼;符合網(wǎng)站優(yōu)化排名的后臺(tái)管理系統(tǒng);成都網(wǎng)站建設(shè)、網(wǎng)站制作收費(fèi)合理;免費(fèi)進(jìn)行網(wǎng)站備案等企業(yè)網(wǎng)站建設(shè)一條龍服務(wù).我們是一家持續(xù)穩(wěn)定運(yùn)營(yíng)了10余年的成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司。一、緩存穿透
緩存穿透是指查詢一個(gè)緩存和數(shù)據(jù)庫(kù)中都沒(méi)有的數(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)用也是很大的問(wèn)題。
二、緩存擊穿
緩存擊穿是指緩存中的一個(gè)熱點(diǎn)Key(比如一個(gè)秒殺商品),在某個(gè)時(shí)間點(diǎn)過(guò)期的時(shí)候,恰好在這個(gè)時(shí)間點(diǎn)訪問(wèn)量劇增,對(duì)這個(gè)Key有大量的并發(fā)請(qǐng)求過(guò)來(lái),請(qǐng)求發(fā)現(xiàn)緩存過(guò)期一般都會(huì)從后端DB加載數(shù)據(jù)并回設(shè)回緩存,但就在緩存中的數(shù)據(jù)還沒(méi)有完全從DB中加載過(guò)來(lái)的這個(gè)時(shí)間段期間,并發(fā)瞬間造成大量請(qǐng)求直接擊穿到DB,對(duì)DB形成巨大壓力。
緩存擊穿,又叫熱點(diǎn)key問(wèn)題,是這三個(gè)問(wèn)題中最經(jīng)典的一個(gè)問(wèn)題。
三、緩存雪崩
緩存雪崩,是指緩存中設(shè)置了大批量相同過(guò)期時(shí)間的數(shù)據(jù)同時(shí)過(guò)期失效,而在這一刻訪問(wèn)量劇增,緩存近乎失效,所有請(qǐng)求全部轉(zhuǎn)向DB,DB瞬時(shí)壓力過(guò)重雪崩,甚至down機(jī)。和緩存擊穿不同的是,緩存擊穿指并發(fā)查同一條數(shù)據(jù),緩存雪崩是不同數(shù)據(jù)都過(guò)期了,很多數(shù)據(jù)都查不到從而查數(shù)據(jù)庫(kù)。
對(duì)于redis緩存我們的程序中會(huì)經(jīng)常用到,有時(shí)候我們改變了部分功能,要是進(jìn)行查看效果的話就要把原來(lái)的緩存清除掉,針對(duì)redis如何進(jìn)行清理緩存,下面小編就給大家介紹兩種方法
對(duì)于redis的各種配置,我這里就不多講了,我們運(yùn)行redis看是否正常
我們清除緩存的時(shí)候最好關(guān)閉redis,打開(kāi)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)一下就可以