現在我們資料每次都是從資料庫讀取,這樣當**訪問量達到高峰時段,對資料庫壓力很大,並且影響執行效率。我們需要將這部分廣告資料快取起來。
查詢的時候走快取,增刪改的時候同步更新快取
查詢的時候:先查redis,根據key去查
1.如果redis有,直接返回結果集
2.如果redis沒有,這時去資料庫查詢,返回結果集,並且同步地把快取資料放到redis中
3.如果redis沒有,資料庫也沒有,把key-null存到redis中
問題1:不應該同步地把資料儲存到快取中,非同步把資料放到快取中,使用mq發訊息
問題2:查詢的key永遠沒有value,每次的請求都會打到資料庫,因為redis中沒有快取結果資料,會造成快取的穿透,快取value為空的資料
問題3:如果惡意訪問,故意製造一些資料庫沒有的資料進行攻擊,如果說訪問持續緩慢,需要降低被惡意程式盯上的機率,快取的降級,不管什麼請求,短時間,高併發,全部返回null,很可能是乙個爬蟲程式
問題4:簡訊驗證碼,報警,請了武漢本地安全團隊進行一些反制措施,最終找到這個人,簡訊轟炸機,呼叫別的公司的簡訊介面
在發簡訊之前,可以使用隨機驗證碼,請滑**塊
redis快取資料
快取資料的步驟 查詢快取,如果沒有資料,則查詢資料庫 查詢資料庫,如果資料不為空,將結果寫入快取 快取資料容易造成如下問題 快取穿透 快取擊穿 快取失效 快取穿透 什麼叫快取穿透?一般的快取系統,都是按照key去快取查詢,如果不存在對應的value,就應該去後端系統查詢 比如db 如果key對應的v...
REDIS實現資料快取
注意 使用的map必須是string,string型別的,意味著如果使用map儲存user和userid,userid作為key,物件作為value,那麼物件在進入map之前需要使用fastjson進行object到json的轉換。tips jedis.sadd key value 建立乙個list...
redis讀取不到資料 Redis快取機制介紹
redis是一款高效能的記憶體型鍵值對 key value 資料庫,是大型 和幾乎所有高併發場景必備的中介軟體,主要用於快取熱點資料,從而大大減輕了後端資料庫的請求壓力,但是因為redis把所有資料都儲存在記憶體中,所以,在把redis用做快取的過程中,常常會遇到以下的一些問題,例如快取更新 快取雪...