论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
应用中心
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
qidao123.com技术社区-IT企服评测·应用市场
»
论坛
›
数据库
›
Nosql
›
Redis 镌汰策略,数据库缓存一致性
Redis 镌汰策略,数据库缓存一致性
熊熊出没
论坛元老
|
2025-5-22 03:43:06
|
显示全部楼层
|
阅读模式
楼主
主题
1957
|
帖子
1957
|
积分
5871
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
一、Redis 内存镌汰策略
当 Redis 内存达到 maxmemory 限定时,需通过镌汰策略开释空间。Redis 提供 8 种镌汰策略,分为以下三类:
1. 不镌汰策略
noeviction(默认):内存不足时拒绝新写入,返回错误(如 OOM)。
适用场景:数据不可丢失,需严格保证一致性。
2. 镌汰有逾期时间的键
volatile-lru:在设置逾期时间的键中,镌汰近来最少利用的键(LRU)。
volatile-ttl:镌汰剩余生存时间(TTL)最短的键。
volatile-random:随机镌汰有逾期时间的键。
volatile-lfu(Redis 4.0+):镌汰利用频率最低的键(LFU)。
适用场景:优先清理即将逾期或低频访问的数据。
3. 镌汰所有键
allkeys-lru:从所有键中镌汰近来最少利用的键。
allkeys-random:随机镌汰恣意键。
allkeys-lfu(Redis 4.0+):镌汰利用频率最低的键。
适用场景:所有数据均可被镌汰,需保存热点数据。
策略选择建议
高频访问场景:优先利用 allkeys-lru 或 allkeys-lfu,保存近来活跃数据。
低频或随机场景:利用 random 策略快速开释内存。
版本依靠:Redis ≥4.0 时,lfu 策略更精准。
二、数据库与缓存一致性
缓存更新时,需确保数据库和 Redis 数据的一致性。常见策略及问题如下:
1. 更新策略对比
更新缓存:
优点:高缓存掷中率,减少回源查询。
缺点:频繁更新导致无效操作(如数据未被读取);线程安全问题(多线程更新辩论)。
删除缓存:
优点:避免无效更新,仅需一次缓存重建。
缺点:大概引发缓存穿透或短暂不一致(旧数据回填)。
2. 操作顺序问题
先删缓存后更新数据库:
风险:删除缓存后,其他线程大概从数据库读取旧数据并回填。
办理方案:异步更新缓存(如通过消息队列),但无法保证强一致性。
先更新数据库后删除缓存:
风险:缓存未删除时,其他线程大概读取旧数据。
办理方案:
延时双删:删除缓存后,延迟一段时间再次删除(如 50ms),确保旧数据未写入。
分布式锁:在删除缓存时加锁,避免并发辩论。
3. 推荐实践
延迟双删:团结异队伍列实现,减少性能损耗。
MQ 异步更新:通过消息队列解耦更新操作,保证终极一致性。
逻辑逾期:在缓存中存储数据版本号,读取时校验版本,避免脏数据。
三、总结
镌汰策略:根据数据访问模式选择 LRU 或 LFU,优先保存热点数据。
一致性:推荐 先更新数据库后删除缓存,团结 延时双删 或 分布式锁 降低风险。
扩展方案:团结布隆过滤器办理缓存穿透,热点数据设置长 TTL 避免击穿。
通过合理选择策略和优化流程,可显著提升系统性能与数据可靠性。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
熊熊出没
论坛元老
这个人很懒什么都没写!
楼主热帖
数据库的三大范式
创建SQL server服务器
在字节跳动干软件测试5年,4月无情被辞 ...
2年自动化测试经验,连基础的都不会, ...
TortoiseGit间接处理linux目录下的仓库 ...
神经网络与深度学习
Java 知识 - 接口代理
ZYNQ从放弃到入门(十二)- AMP — Zyn ...
django小项目 ----- 创建错题集 ...
基于遗传算法的最优潮流问题的研究(Ma ...
标签云
渠道
国产数据库
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表