亿级流量网站架构核心技术 第九章 应用级缓存

缓存命中率

 

 

 

缓存回收策略

1 基于空间

  指缓存设置了存储空间

2 基于容量

  指缓存设置了数量的大小

3 基于时间

  TTL:存活期,即缓存数据从创建开始到过期的时间段

  TTI:空闲期,多久没被访问后移除

4 基于Java对象引用

  软引用:

  弱引用:

5 回收算法

  FIFO:先进先出。

  LRU:最近最少使用。移除使用时间最久的

  LFU:最不常用。移除一段时间内使用次数最少的

 

 

 

 

Java缓存类型

1 堆缓存

  没有序列化/反序列化,是最快的缓存。当数据量很大时,GC暂停时间长,容量受限于堆空间大小。一般通过软引用/弱引用。

  可以使用Guava Cache,Ehcache 3.X,MapDB

2 堆外缓存

  减少GC暂停时间,支持更大的缓存空间。需要序列化/反序列化

  可以使用Ehcache 3.X,MapDB

3 磁盘缓存

  缓存数据在磁盘上,重启后仍存在

  可以使用Ehcache 3.X,MapDB

4 分布式缓存

  

 

 

 

缓存使用模式实践

1 cache-aside

  业务代码围绕着cache写,由业务代码直接维护缓存

2 cache-as-sor

  把cache看作数据源,所有操作都是对cache进行,再由cache委托给sor进行真实的读/写,有三种实现read-through,write-through,write-behind

  

 

posted @ 2019-07-16 15:56  褐色键盘  阅读(145)  评论(0)    收藏  举报