美文网首页
系统性能提升之缓存

系统性能提升之缓存

作者: 耗子2015 | 来源:发表于2021-02-24 16:28 被阅读0次

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

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

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

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

    @Autowired
    RedisTemplate<Long,String> 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即可

    <dependency>
        <groupId>io.github.haozi2015</groupId>
      <artifactId>autocache-spring-boot-starter</artifactId>
      <version>1.0.4</version>
    </dependency>
    

    更多功能,请关注作者haozi2015

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

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

    相关文章

      网友评论

          本文标题:系统性能提升之缓存

          本文链接:https://www.haomeiwen.com/subject/axvsfltx.html