当前位置:网站首页>Redis-緩存問題
Redis-緩存問題
2022-06-30 12:28:00 【Array_new】
前言:
每次啟動項目時都會由於數據庫的數據太多導致剛進去的時候會由於數據存放過多,首頁信息多個請求體直接用MySQL數據庫速度慢,影響用戶體驗一下是用redis解决緩存問題的解决思路,以提高能。
緩存穿透
指的是客戶端請求的數據在緩存中和數據庫中都不存在,這樣的緩存永遠也不會生效,這些請求都會打到數據庫
問題解决:
- 緩存空對象
優點:實現簡單,維護方便
缺點:額外內存消耗,可能造成短期的不一致

2.布隆過濾
優點:內存占用少,沒有多餘的Key
缺點:實現複雜,存在誤判可能

緩存擊穿
緩存擊穿是指用戶查詢的數據緩存中不存在,但是後端數據庫卻存在,這種現象出現原因是一般是由緩存中 key 過期導致的。比如一個熱點數據 key,它無時無刻都在接受大量的並發訪問,如果某一時刻這個 key 突然失效了,就致使大量的並發請求進入後端數據庫,導致其壓力瞬間增大。這種現象被稱為緩存擊穿。
緩存擊穿有兩種解决方法:
1) 改變過期時間
設置熱點數據永不過期。
2) 分布式鎖
采用分布式鎖的方法,重新設計緩存的使用方式,過程如下:
- 上鎖:當我們通過 key 去查詢數據時,首先查詢緩存,如果沒有,就通過分布式鎖進行加鎖,第一個獲取鎖的進程進入後端數據庫查詢,並將查詢結果緩到Redis 中。
- 解鎖:當其他進程發現鎖被某個進程占用時,就進入等待狀態,直至解鎖後,其餘進程再依次訪問被緩存的 key。
緩存雪崩
緩存雪崩是指緩存中大批量的 key 同時過期,而此時數據訪問量又非常大,從而導致後端數據庫壓力突然暴增,甚至會掛掉,這種現象被稱為緩存雪崩。它和緩存擊穿不同,緩存擊穿是在並發量特別大時,某一個熱點 key 突然過期,而緩存雪崩則是大量的 key 同時過期,因此它們根本不是一個量級。
解决方案
緩存雪崩和緩存擊穿有相似之處,所以也可以采用熱點數據永不過期的方法,來减少大批量的 key 同時過期。再者就是為 key 設置隨機過期時間,避免 key 集中過期。
边栏推荐
- Shutter start from zero 006 radio switches and checkboxes
- 695. maximum island area
- 海思3559万能平台搭建:获取数据帧修改后编码
- Flutter 从零开始 007 输入框
- NoSQL - redis configuration and optimization
- STM32 移植 RT-Thread 标准版的 FinSH 组件
- Embedded sig | multi OS hybrid deployment framework
- SuperMap iClient3D 11i for Cesium三维场景中图例使用说明
- 1020. number of enclaves
- Map collection
猜你喜欢

浏览器播放rtsp视频,基于nodeJs

会议预告 | 华为 2012 实验室全球软件技术峰会-欧洲分会场

What is the principle of spectral confocal displacement sensor? Which fields can be applied?

品达通用权限系统(Day 7~Day 8)

MATLAB中polarplot函数使用

SuperMap iclient3d for webgl loading TMS tiles

ES6新特性介绍

海思3559萬能平臺搭建:獲取數據幀修改後編碼

STM32 移植 RT-Thread 标准版的 FinSH 组件

SuperMap iDesktop 常见倾斜数据处理全流程解析
随机推荐
Pharmacy management system
Introduction to sub source code updating: mid May: uniques NFT module and nomination pool
How difficult is data governance and data innovation?
Understanding and learning of MySQL indexing and optimization
1175. prime number arrangement: application of multiplication principle
MySQL composite query
Substrate 源码追新导读: 5月中旬: Uniques NFT模块和Nomination Pool
1254. 统计封闭岛屿的数目
Getting started with the go language is simple: go handles XML files
Set集合
Commands for redis basic operations
DMA controller 8237a
SuperMap iDesktop 常见倾斜数据处理全流程解析
200. number of islands
Shutter start from zero 006 radio switches and checkboxes
并行接口8255A
beego开发博客系统学习(二)
Instructions for legend use in SuperMap iclient3d 11i for cesium 3D scene
A Generic Deep-Learning-Based Approach for Automated Surface Inspection-论文阅读笔记
Embedded SIG | 多 OS 混合部署框架