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

如何实现多级缓存?

本文重点说一说在Java应用中,多级缓存如何实现。

多级缓存是比较常见的一种性能优化的手段,一般来说就是本地缓存+分布式缓存。

本地缓存一般采用Caffeine和Guava,这两种是性能比较高的本地缓存的框架。他们都提供了缓存的过期、管理等功能。

分布式缓存一般采用Redis、Memcached等分布式缓存框架。

在做多级缓存的方案中,会先查询本地缓存,如果本地缓存查不到,再查询分布式缓存。并且在分布式缓存中查询到之后保存到本地缓存中一份。

在这里插入图片描述

有些特殊场景,如黑名单场景,本地缓存也会用boomfilter来充当,因为bloom filter是有假阳性的特性的,所以命中后需要在查一次分布式缓存,如果没命中则直接返回。

在这里插入图片描述

一致性问题

使用多级缓存,比较大的问题就是一致性如何保证,因为用到了本地缓存,而一个集群中有很多台服务器,每个服务器上面的本地缓存内容都不一样。

这个是使用本地缓存的最大的劣势了,但是这个问题是在提升性能的情况下不可避免的带来的副作用。

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

相关文章:

  • Saas数据库迁移单租户数据
  • LeetCode100之括号生成(22)--Java
  • 阿里云ios镜像源
  • 芯片:为何英伟达的GPU能在AI基础设施领域扮演重要角色?
  • Linux系统之hostname相关命令基本使用
  • Domain Adaptation(李宏毅)机器学习 2023 Spring HW11 (Boss Baseline)
  • 在php中,Fiber、Swoole、Swow这3个协程都是如何并行运行的?
  • SQLite PRAGMA
  • 使用python调用JIRA6 REST API及遇到的问题
  • 基于STM32的智能电表可视化设计:ESP8266、AT指令集、python后端Flask(代码示例)
  • 图片和短信验证码(头条项目-06)
  • 2501,wtl显示html
  • 嵌入式C语言:什么是指针?
  • 解锁 KaiwuDB 数据库工程师,开启进阶之路
  • ffmpeg7.0 aac转pcm
  • 【Pandas】pandas Series rdiv
  • 线程安全问题介绍
  • 为AI聊天工具添加一个知识系统 之27 支持边缘计算设备的资源存储库及管理器
  • 初识verilog HDL
  • VS2015 + OpenCV + OnnxRuntime-Cpp + YOLOv8 部署
  • Notepad++上NppFTP插件的安装和使用教程
  • Kotlin | Android Provider 的实现案例
  • 频域自适应空洞卷积FADC详解
  • Edge浏览器内置的截长图功能
  • GAN的应用
  • Math Reference Notes: 希腊字母表
  • 高通,联发科(MTK)等手机平台调优汇总
  • Rust语言使用iced实现简单GUI页面
  • 使用wav2vec 2.0进行音位分类任务的研究总结
  • 25/1/11 嵌入式笔记<esp32> 初入esp32