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

缓存的变更(JVM本地缓存->Redis分布式缓存)

在一次需求修改中,下游的服务附加提出了,针对某个业务数据缓存的生效时间的要求

原JVM设计方案:

采用jvm本地缓存机制,定时任务30秒刷新一次

现在redis方案:

  1. 因为很多地方使用了这个业务数据缓存,使用方面不能改动过多
  2. 因为是分布式部署,如果只使用jvm缓存,无法更新其他的服务器中的缓存数据,达不到立刻生效的要求
  3. 不使用二级缓存的原因:理由和第二个一样,如果优先使用jvm时,哪怕更新了redis,其他服务器也会先用jvm缓存(另外为什么会使用二级缓存?:因为jvm本地缓存更快而已,还得加重了架构的负担,为了一个需求)

所以:直接把维护jvm业务缓存改成redis来维护

那便需要考虑主动刷新 被动刷新 生效时间等

  1. 被动刷新:依旧使用jvm缓存的定时任务机制,30秒更新一次(无改动,使用原本的机制)
  2. 主动刷新:由于生效时间是一秒生效,则在修改和更新后,需要立即主动刷新该缓存(改动少,维护都在一个项目里,不需要采用什么监听mysql表的东西)

修改中的收获:

  1. 工具类中获取注入的问题 BeanUtil.getBean(RedisTemplate.class);
  2. redis Pipeline管道提速 redisTemplate.STRINGS.setEx(redisCacheList,refreshTime);
  3. 分割思想:更小的粒度 如:redis 一个key存储一个表的数据太大了,则根据表中关键key进行切分
http://www.lryc.cn/news/135841.html

相关文章:

  • springMVC Unix 文件参数变更漏洞修复
  • 【LeetCode】494.目标和
  • KaiwuDB 荣获哈佛商业评论 2023“高能韧性团队奖”
  • 删除ubuntu开始菜单中的图标
  • 信息系统项目管理基础知识学习笔记 - IT 治理基础 - IT治理的驱动因素
  • 8月21-22日上课内容 第一章 MySQL数据库初始
  • 等级查询发布助手
  • 手搭手入门MyBatis-Plus
  • AI 绘画Stable Diffusion 研究(十一)sd图生图功能详解-美女换装
  • Servlet+JDBC实战开发书店项目讲解第14讲:订单管理功能
  • 基于Linux操作系统中的shell脚本
  • 8.22笔记
  • 【以太网通信】RS232 串口转以太网
  • 分享两道Java面试的算法上机题目(后续会持续补充更多)
  • 如何使用CSS实现一个平滑过渡效果?
  • 网络常见设备
  • 数据结构与算法:通往编程高地的必修课(文末送书)
  • python小脚本——批量将PDF文件转换成图片
  • cUrl的介绍和基本使用
  • ONLYOFFICE协作空间服务器如何一键安装自托管私有化部署
  • java分析公司名称:AI智能工具助力提取地名、品牌名、行业名
  • php 二维数组排序
  • postgresql 性能调优
  • 派森 #P128. csv存json格式
  • iPhone开启“轻点唤醒”功能但点击屏幕无反应怎么解决?
  • 论AI与大数据之间的关系
  • 6.ES基础概念及术语详细解读
  • 大语言模型微调实践——LoRA 微调细节
  • 国内ChatGPT对比与最佳方案
  • 绝美的古诗词AI作画,惊艳到我了!