在以后學習Python的過程中,很多小伙伴都會向web開發的方向靠攏。在網頁中,最常用的是緩存,可以用來實現各種功能。比如我們登錄一個網頁的時候,瀏覽器會問你是否記住,如果你選擇記住用戶名和密碼,就會用到緩存,緩存也會遇到一些問題。有關詳細信息,請參閱以下內容:
什么是緩存穿透?
當我們訪問一個鍵時,也就是下標。如果這個鍵對應的數據不存在,自然不會從緩存中獲取,然后這些請求將訪問數據庫。如果數據量很大,自然會對數據庫產生產生較大壓力從而導致崩潰,那什么情況數據會不存在呢?例如,使用不存在的用戶id獲取信息,或者一些帶有負數的信息,不法分子利用該漏洞進行攻擊很可能導致數據庫崩潰。
什么是緩存擊穿?
當我們查詢到某個鍵對應的數據時,redis中確實存在,但是已經過期了,即無法從緩存中獲取到數據,那么就會去數據庫中查找,如果這個鍵在某個在某個時間點,超高并發訪問的數據,即非常熱的數據,自然會請求數據庫,導致后端數據庫崩潰。
什么是緩存雪崩?
緩存雪崩與緩存擊穿類似,不同的是,緩存雪崩是針對多個鍵的緩存,而緩存擊穿則是針對某個鍵。當我們查詢多個鍵對應的數據時,這些鍵在緩存中都是過期的,那么這些大量的請求就會去數據庫進行查詢訪問,從而導致數據庫崩潰。