OSCache介绍

1 OSCache 缓存原理简介
Cache Factory
Cache Proxy
Cache Map
Memory
Disk
Listeners
Cache Entry

Cache Factory :该实体负责获得 Cache Proxy ,兼有一些对 Cache Proxy 的管理功能。对应到现在的 OSCache 实现中的类是: GeneralCacheAdministrator 和 ServletCacheAdministrator 。
Cache Proxy :该实体是 Cache Map 的代理,它主要负责从 Cache Map 中取得 / 存储指定的缓存对象,如果缓存对象过期,那么就将缓存刷新,并向指定的监听者发送存 / 取事件。对应到现在的 OSCache 实现中的类是: Cache 和 ServletCache 。
Cache Map :该实体存储了所有的缓存实体,是一个 OSCache 专有的 Map 实现,它能根据指定的算法清除缓存,以及将缓存持久化到磁盘中。对应到现在的 OSCache 实现中的类是: FIFOCache , LRUCache 和 UnlimitedCache 。
Listeners : OSCache 存 / 取事件的监听者实体。对应到现在的 OSCache 实现中的类是: CacheEntryEventListener 和 CacheMapAccessEventListener 。
Cache Entry :表示缓存对象的包装实体,它包装了缓存对象和刷新策略。对应到现在的 OSCache 实现中的类是: CacheEntry 。
1.1应用场景
一个典型的“缓存对象”场景是:
应用调用 Cache Factory 获得 Cache Proxy ,然后应用将要缓存的对象以及刷新策略通过 Cache Proxy 存储到 Cache Map 中,并通知各个 Listener 。
一个典型的“取得缓存对象”的场景是:
应用调用 Cache Factory 获得 Cache Proxy ,然后给 Cache Proxy 的相应方法传入要获得的缓存对象的 key , Cache Proxy 会根据指定的刷新策略判断缓存是否过期,如果缓存没有过期,则返回缓存对象,如果缓存过期,则刷新缓存,并向应用层抛出需要刷新的异常( NeedsRefreshException ),应用如果收到此异常,将重新计算内容并将内容缓存。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值