如何实现多级缓存?

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

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

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

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

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

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

一致性问题

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

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

相关推荐
RoboWizard3 小时前
双接口移动固态硬盘兼容性怎么样?
人工智能·缓存·智能手机·电脑·金士顿
honortech6 小时前
外部连接 redis-server 相关配置
数据库·redis·缓存
不会写程序的未来程序员6 小时前
Redis 的内存回收机制详解
数据库·redis·缓存
不会写程序的未来程序员7 小时前
Redis 主从同步原理详解
数据库·redis·缓存
嘻哈baby7 小时前
Redis突然变慢,排查发现是BigKey惹的祸
数据库·redis·缓存
TDengine (老段)8 小时前
TDengine 数据缓存架构及使用详解
大数据·物联网·缓存·架构·时序数据库·tdengine·涛思数据
键来大师8 小时前
Android16 RK3576 系统清理缓存
android·缓存·framework·rk3588·android15
Ghost Face...8 小时前
深入解析dd命令:缓存与磁盘速度之谜
linux·缓存
我要精通C++8 小时前
从源码看nginx的缓存功能
运维·nginx·缓存
Mr.Pascal17 小时前
Redis:主动更新,读时更新,定时任务。三种的优劣势对比
数据库·redis·缓存