分布式缓存
使用场景
-
DB缓存,减轻服务器压力
-
提高系统响应
-
做Session分离
-
分布式锁(Redis)
多个进程(JVM)在并发时也会产生问题,也要控制时序性,使用Redis实现 sexNX
-
乐观锁(Redis)
同步锁和数据库中的行锁、表锁都是悲观锁,悲观锁的性能是比较低的,响应性比较差
高性能、高响应(秒杀)采用乐观锁,Redis可以实现乐观锁 watch + incr
不同架构看缓存
-
单体架构
-
集群架构
- 演进
- 演进
-
微服务架构
分类
-
系统级缓存
-
CPU缓存
-
L1缓存
-
数据缓存(L1d Cache)
-
指令缓存(L1d Cache)
-
-
-
-
客户端缓存
-
页面缓存
-
页面自身对某些元素或全部元素进行缓存
- html5:Cookie、WebStorage(SessionStorage和LocalStorage)、WebSql、indexDB、Application Cache等
-
服务端将静态页面或者动态页面进行缓存,然后给客户端使用
-
-
浏览器缓存
-
App缓存
-
Android
-
轻量级缓存框架:ASimpleCache
-
可以缓存:JSon、BitMap、序列化的Java对象和二进制数据等
-
-
iOS
-
sDWeblmage
-
NsCache
-
-
-
-
服务端缓存
-
数据库缓存
-
如MySQL的查询缓存Query Cache
-
K-V结构,Key:select语句的hash值,Value:查询结果
-
InnoDB存储引擎中的buffer-pool用于缓存InnoDB索引及数据块
-
-
平台级缓存(带有缓存功能的专用库,或者具有缓存特性的框架)
-
分类
-
Ehcache
-
多级缓存策略
-
缓存的数据在内存和磁盘当中
-
缓存数据在虚拟机重启的过程中写入磁盘
-
可以通过RMl或接口的方式实现分布式缓存
-
允许注册事件来侦听缓存
-
-
Guava Cache
-
Guava是一套java工具包
-
相对于CurrentHashMap,限制内存的使用,会自动回收元素
-
-
SpringCache
-
通过少量的配置就可以使得既有代码支持缓存
-
不用安装和部署额外第三方组件就可以使用缓存
-
支持Spring Express Language
-
支持Aspecty
-
支持自定义key,具有相当的灵活性和扩展性
-
-
Jboss Cache
-
支持树状结构
-
支持集群
-
支持事务的缓存框架
-
缓存加载器
-
驱逐策略
-
缓存钝化
-
并发
-
-
OSCache
-
缓存任何对象
-
拥有全面的API
-
永久缓存
-
支持集群
-
缓存过期
-
-
-
特点
-
基于应用程序的缓存库
-
具有一定的分布式能力
-
数据不能保证强一致性
-
无法保证高可用
-
-
选型
- Spring Cache不仅可以自己使用还可以与其他缓存框架做做整合
- Spring Cache不仅可以自己使用还可以与其他缓存框架做做整合
-
-
应用级缓存
-
Redis和Memcached
- 最重要的区别是Redis键值不宜过大,会影响性能
-
CDN缓存
-
Content Delivery Network(内容分发网络)
-
优点
-
本地Cache加速
-
实现跨运营商的网络加速
-
远程加速
-
带宽优化
-
集群抗攻击
-
-
-
-
读写模式
-
旁路缓存Cache Aside Pattern(常用)
-
读
-
更新
-
-
Read/Write Through Pattern
-
应用程序只操作缓存,缓存操作数据库
-
Read-Through(穿透读模式/直读模式)
- 应用程序读缓存,缓存没有,由缓存回源到数据库,并写入缓存
-
Write-Through(穿透写模式/直写模式)
- 应用程序写缓存,缓存写数据库
-
该种模式需要提供数据库的handler,开发较为复杂。
-
-
Write Behind Caching Pattern
-
应用程序只更新缓存。
-
缓存通过异步的方式将数据批量或合并后更新到DB中
-
不能时时同步,甚至会丢数据
-
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了