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

面试—如何介绍项目中的多级缓存?

项目中使用的多级缓存也就是 分布式缓存 Redis + 本地缓存 Caffeine,那么令 Caffeine 作为一级缓存,Redis 作为二级缓存,在项目中通过记录数据的访问次数,将热点数据放在 本地缓存,将非热点数据放在 Redis缓存 中,访问流程如下:

请添加图片描述

使用多级缓存的好处在于 Redis 单机每秒可以接收 10w 次的请求,本地缓存比 Redis 缓存可以抗更高数量级的并发,本地缓存可以每秒接收百万的请求,使用两级缓存极大增加访问效率

但是使用多级缓存之后,存在数据一致性问题

  • Redis 缓存和 MySQL 数据不一致:可以使用 延时双删 来保证数据的一致性,如果需要更准确的数据一致性,可以使用 Canal 来监听 MySQL 的 binlog 日志来保证数据的一致性

  • 在分布式环境下,多台应用之间本地缓存以及和 MySQL 之间的数据不一致:可以通过 MQ 来保证数据一致性

    当应用 1 收到请求更新数据库,同时应用 1 更新本地缓存,并且发送更新 MQ 广播消息,让其他的应用也更新本地缓存

如何对热点数据进行存储?

其实就是将数据的访问次数记录起来,当发现访问量非常大,在本地记录一下,可以使用 HashMap 进行存储,记录一下热点数据,再通知所有的服务将热点数据放入到本地缓存中来

http://www.lryc.cn/news/221314.html

相关文章:

  • PyTorch入门学习(十七):完整的模型训练套路
  • 《 Hello 算法 》 - 免费开源的数据结构与算法入门教程电子书,包含大量动画、图解,通俗易懂
  • 数据库之事务
  • NOIP2023模拟12联测33 B. 游戏
  • 代码随想录打卡第六十三天|84.柱状图中最大的矩形
  • python tempfile 模块使用
  • 【软件测试】接口测试实战详解
  • 轻量封装WebGPU渲染系统示例<20>- 美化一下元胞自动机之生命游戏(源码)
  • Nodejs的安装以及配置(node-v12.16.1-x64.msi)
  • 03【保姆级】-GO语言变量和数据类型和相互转换
  • mermaid学习第一天/更改主题颜色和边框颜色/《需求解释流程图》
  • SAP MASS增加PR字段-删除标识
  • 【手把手教你】训练YOLOv8分割模型
  • 物料主数据增强屏幕绘制器DUMP
  • vue 实现在线预览Excel-LuckyExcel/LuckySheet实现方案
  • AIGPT重大升级,界面重新设计,功能更加饱满,用户体验升级
  • Web逆向-mtgsig1.2简单分析
  • 【蓝桥杯省赛真题41】Scratch电脑开关机 蓝桥杯少儿编程scratch图形化编程 蓝桥杯省赛真题讲解
  • 第10章 Java常用类
  • Android 11 getPackageManager().getPackageInfo 返回null
  • 4、数据结构
  • qt5.15.2+vs2019源码调试开发环境搭建
  • 【数据结构】单链表之--无头单向非循环链表
  • 网络中使用最多的图片格式有哪些
  • 个人常用Linux命令
  • 数据结构——常见简答题汇总
  • josef约瑟低电压继电器 DY-110 10-109V 辅助电源·DC110V 嵌入式面板安装
  • Visual Studio Code将中文写入变量时,中文老是乱码问题
  • 各省市30米分辨率DEM数据,推荐下载!
  • 操作系统引论(一)