如何实现多级缓存?

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

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

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

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

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

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

一致性问题

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

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

相关推荐
六千江山32 分钟前
Redis 多路复用(Multiplexing)
java·redis·缓存
言之。36 分钟前
Redis解决热key问题
数据库·redis·缓存
IT利刃出鞘12 小时前
Knife4j--清除缓存的方法
缓存
My LQS16 小时前
通过 Caffeine 和 Spring Cache 的集成,实现高性能的本地缓存
java·spring·缓存
张声录11 天前
Redis Exporter 安装与配置指南(v1.67.0)
数据库·redis·缓存
豪宇刘1 天前
Redis 安装与 Spring Boot 集成指南
spring boot·redis·缓存
苦夏木禾1 天前
vue的KeepAlive应用(针对全部页面及单一页面进行缓存)
前端·vue.js·缓存
morris1311 天前
【redis】ubuntu18安装redis7
数据库·redis·ubuntu·缓存·apt
青灯文案11 天前
基于Java 的高性能缓存库 Caffeine 详细介绍
java·spring·缓存