缓存更新策略

缓存更新是Redis为了节约内存而设计出来的一个东西,主要是因为内存数据宝贵,当我们向redis插入太多数据,此时就可能会导致缓存中的数据过多,所以redis会对部分数据进行更新,或者淘汰。

1.缓存更新策略

1.1.内存淘汰

redis自动进行,当redis内存达到咱们设定的max-memery的时候,会自动触发淘汰机制,淘汰掉一些不重要的数据(可以自己设置策略方式)

1.2超时剔除

当我们给redis设置了过期时间TTL之后,redis会将超时的数据进行删除,方便咱们继续使用缓存

1.3.主动更新

我们可以手动调用方法把缓存删掉,通常用于解决缓存和数据库不一致问题

2.三种策略的区别

|------|-------------------------------------------------|-----------------------------------|------------------------|
| | 内存淘汰 | 超时剔除 | 主动更新 |
| 特点 | 不用自己维护,利用Redis的内存淘汰机制,当内存不足时自动淘汰部分数据。下次查询时更新缓存。 | 给缓存数据添加TTL时间,到期后自动删除缓存。下次查询时更新缓存。 | 编写业务逻辑,在修改数据库的同时,更新缓存。 |
| 一致性 | 差 | 差 | 好 |
| 维护成本 | 无 | 低 | 高 |

2.1使用场景

**低一致性需求:**使用内存淘汰机制。例如店铺类型的查询缓存

**高一致性需求:**主动更新,并以超时剔除作为兜底方案。例如店铺详情查询的缓存

相关推荐
sheji34161 分钟前
【开题答辩全过程】以 基于Java的甜品蛋糕网上商城的设计与实现为例,包含答辩的问题和答案
java·开发语言
智能零售小白白4 分钟前
零售多门店库存调拨优化:需求预测与路径规划的技术实现
java·开发语言·零售
前路不黑暗@6 分钟前
Java项目:Java脚手架项目的意义和环境搭建(一)
java·开发语言·spring boot·学习·spring cloud·maven·idea
Seven9716 分钟前
LockSupport深度解析:线程阻塞与唤醒的底层实现原理
java
组合缺一17 分钟前
OpenSolon v3.9.3, v3.8.5, v3.7.5, v3.6.8 年货版发布
java·人工智能·分布式·ai·llm·solon·mcp
uesowys28 分钟前
华为OD算法开发指导-二级索引-Read and Write Path Different Version
java·算法·华为od
小比特_蓝光33 分钟前
STL小知识点——C++
java·开发语言·c++·python
xq952735 分钟前
leetcode 算法之合并两个有序数组
java
beata39 分钟前
Java基础-11:充分理解Collection和Map接口集合底层实现和避坑指南
java·后端
消失的旧时光-194342 分钟前
第二十二课:领域建模实战——订单系统最小闭环(实战篇)
java·开发语言·spring boot·后端