系统性能提升之缓存

缓存是解决互联网大流量常用的性能提升方式之一,也是最常被问到的问题。缓存又多种多样,像Java的内存缓存就有Guava Cache、Ehcache、Caffeine等等;像远程存储缓存(需要独立部署)常用的有Memcached、Redis等等。

已知缓存可以提升系统性能,那么适合什么场景?

  • 商品详情页
  • 购物车
  • 优惠券
  • 促销活动
  • 等等...

不同的场景都有各自的缓存策略,最最常见的就是先查询缓存,如果缓存未命中,再查询数据库,最后将数据库的数据添加到缓存中,以Redis缓存为例,代码:

@Autowired
RedisTemplate redisTemplate;

public String getName(Long id){
  String name = redisTemplate.opsForValue().get(id);
  if(name == null){
    name = dao.getNameById(id);
    redisTemplate.opsForValue().setIfAbsent(id,name,30, TimeUnit.SECONDS);
  }
  return name;
}

相信大家这样的代码都不陌生,向大家推荐一个极其简单、好用的缓存组件AutoCache组件,只需要这样:

@AutoCache(remoteTTL = 30)
public String getName(Long id){
  return dao.getNameById(id);
}

为应对更多场景,还支持二级缓存,也非常简单。

@AutoCache(localTTL = 5, remoteTTL = 30)
public String getName(Long id) {
  return dao.getNameById(id);
}

配置添加Maven即可


    io.github.haozi2015
  autocache-spring-boot-starter
  1.0.4

更多功能,请关注作者haozi2015。

源码:https://github.com/haozi2015/autoCache

Gitee同步更新:https://gitee.com/openhaozi2015/autoCache

你可能感兴趣的:(系统性能提升之缓存)