当前位置:网站首页>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 集中過期。
边栏推荐
- 90. (cesium chapter) cesium high level listening events
- AGCO AI frontier promotion (6.30)
- 【BUG解决】fiftyone报AttributeError: module ‘cv2‘ has no attribute ‘gapi_wip_gst_GStreamerPipeline‘错误解决方法
- Introduction to the pursuit of new subtrate source code - early May: xcm officially launched
- The format of RTSP address of each manufacturer is as follows:
- 各厂家rtsp地址格式如下:
- 【LeetCode】15、三数之和
- STM32 移植 RT-Thread 标准版的 FinSH 组件
- 使用Power Designer工具构建数据库模型
- 海思3559万能平台搭建:获取数据帧修改后编码
猜你喜欢

腾讯二面:@Bean 与 @Component 用在同一个类上,会怎么样?

Redis configuration files and new data types

Use of polarplot function in MATLAB

90. (cesium chapter) cesium high level listening events

立创 EDA #学习笔记10# | 常用连接器元器件识别 和 无源蜂鸣器驱动电路

Understanding and learning of MySQL indexing and optimization

Lvgl widget styles

SuperMap iClient3D 11i for Cesium三维场景中图例使用说明

Introduction to new features of ES6

List collection
随机推荐
MySQL composite query
Solve the problem that the server cannot be connected via SSH during reinstallation
浏览器播放rtsp视频,基于nodeJs
SuperMap iServer11i新功能----图例的发布和使用
1175. prime number arrangement: application of multiplication principle
The website with id 0 that was requested wasn‘t found. Verify the website and try again
Object mapping - mapping Mapster
海思3559开发常识储备:相关名词全解
Use of polarplot function in MATLAB
Redis的配置文件及新数据类型
药店管理系统
Pinda general permission system (day 7~day 8)
Map集合
海思3559 sample解析:venc
QT MSVC installation and commissioning
[cf] 803 div2 A. XOR Mixup
不同类型的变量与零究竟是如何比较
Flutter 从零开始 007 输入框
The format of RTSP address of each manufacturer is as follows:
Embedded sig | multi OS hybrid deployment framework