当前位置: 首页 > news >正文

一文讲解Redis中和本地缓存之间的一致性问题及区别等

一文讲解Redis中和本地缓存之间的一致性问题及区别等

在我做的项目中,为了减轻 Redis 的负载,我追加了一层本地缓存 Caffeine。

三分恶面渣逆袭:延时双删

为了保证本地缓存和 Redis 缓存的一致性,通常采用的策略有:

①、设置本地缓存的过期时间,这是最简单也是最直接的方法,当本地缓存过期时,就从 Redis 缓存中去同步。

②、使用 Redis 的 Pub/Sub 机制,当 Redis 缓存发生变化时,发布一个消息,本地缓存订阅这个消息,然后删除对应的本地缓存。

③、Redis 缓存发生变化时,引入消息队列,比如 RocketMQ、RabbitMQ 去更新本地缓存。

三分恶面渣逆袭:本地缓存/分布式缓存保持一致

由于技术派本身对缓存的一致性要求不是特别高,所以我就采用第一种方式。

另外,在技术派实战项目中,我对缓存的使用场景做了细化。比如说,使用 CacheBuilder 来完成 Guava Cache 的构建,像一些简单的缓存场景,比如说获取菜单分类、获取登录验证码、获取用户转存图片等,都使用了 Guava Cache。

技术派教程:Guava

像首页侧边栏、专栏侧边栏、文章详情侧边栏等缓存场景,就使用了 Caffeine 作为本地缓存,通过 @Cacheable、@CacheEvit、@CachePut 等注解实现,非常轻巧。

技术派教程:Caffeine

而像用户 Session 和网站地图 SiteMap 等缓存场景,就使用了 Redis 来作为缓存。

技术派教程:Redis

如果在项目中多个地方都要使用到二级缓存的逻辑,如何设计这一块?

在设计时,应该清楚地区分何时使用一级缓存和何时使用二级缓存。通常情况下,对于频繁访问但不经常更改的数据,可以放在本地缓存中以提供最快的访问速度。而对于需要共享或者一致性要求较高的数据,应当放在一级缓存中。

本地缓存和 Redis 缓存的区别和效率对比?

Redis 可以部署在多个节点上,支持数据分片,适用于跨服务器的缓存共享。而本地缓存只能在单个服务器上使用。

Redis 还可以持久化数据,支持数据备份和恢复,适用于对数据安全性要求较高的场景。并且支持发布/订阅、事务、Lua 脚本等高级功能。

效率上,Redis 和本地缓存都是存储在内存中,读写速度都非常快。

相关文章:

  • 用Deepseek直接在word中完成论文的润色(中-中,中-英, 英-中)
  • 如何安装VMware
  • 基于不完整多模态神经影像的阿尔茨海默病诊断领域特定信息保留|文献速递-医学影像人工智能进展
  • 深度学习训练平台建设中的性能优化实践
  • [特殊字符]清华大学:DeepSeek从入门到精通.pdf(清华领航,驾驭DeepSeek,开启AI新境界)
  • ZT11 压缩二维码
  • 【目标检测】目标检测中的数据增强终极指南:从原理到实战,用Python解锁模型性能提升密码(附YOLOv5实战代码)
  • Mac下VSCode调试skynet的lua环境配置
  • 【前端基础篇】Day 1
  • Postman操作(接口测试、生成测试报告、MockServer等)
  • 检查模型配置参数
  • 软件测试的基础入门(一)
  • 一文详解U盘启动UEFI/Legacy方式以及GPT/MBR关系
  • 11、集合框架
  • HOW - 个人创业(融资篇)
  • 如何安装vm 和centos
  • python目录
  • db.session.delete是什么意思
  • 10分钟熟练掌握宝兰德中间件部署 iServer
  • 【数据结构第十六节】实现链式结构二叉树(详细递归图解—呕心沥血版!)
  • 工会网站平台建设/深圳推广公司哪家好
  • 上海网站制作工作室/常州网站seo
  • 佛山做网站建设公司/uc推广登录入口
  • 有网站怎样做推广/河北百度seo
  • 注册成立一个公司需要多少钱/福州百度seo
  • 汕头百姓网交友/seo网站优化