对于读多写少的少量数据的缓存优化

前提:数据量比较少,并且读多写少,实时性要求不高的数据。

优点

  1. 访问本地cache节省了网络开销,减少中心cache集群(redis)的压力
  2. 正常的web机器内存利用率较低,减少web机内存资源的浪费

类库的选择

google guava cache

  1. LRU失效机制
  2. 流畅的api接口
  3. 使用内存缓存
  4. 配套stats接口

流程

未命名文件.png

  1. [被动失效] controller层访问cache,若获取不到数据,从db中获取数据,并刷到cache
  2. [主动失效] 当db数据变更时,主动失效缓存;注意:这里cache是在每台web机器都有一份,所以每台机器都需要刷一遍;所以我们需要一个配置中心;在web机器监听配置中心的变化,然后刷新各自机器的cache
  3. 定时将本机的cache的 命中率,量 上报到监控系统

主动失效机制

  1. 实时性要求较高的可以订阅mysql的binlog
  2. 实时性要求不高的可以定时跑crontab

标签: none

添加新评论