高并发下-商品首页热点数据开发实战

DBC 1.7K 0

简介:高并发商品首页热点数据开发实战

  • 热点数据
    • 经常会被查询,但是不经常被修改或者删除的数据
    • 首页-详情页
  • 链路逻辑
    • 检查缓存是否有
    • 缓存不存在则查询数据库
    • 查询结果放到缓存,设置过期时间
    • 下次访问则命中缓存
  • 接口开发
    • 模拟数据库查询耗时200ms
    • 未加缓存逻辑:controller-service-dao层
    • 加缓存逻辑:controller-service-dao层

     

  • 注意点
    • 缓存击穿
    • 缓存穿透
    • 缓存雪崩
    • 缓存和数据库数据一致性
代码示例
    @Autowired
    private RedisTemplate redisTemplate;

    /**
     * 缓存key
     */
    private static final String VIDEO_CARD_CACHE_KEY = "video:card:key";


 @GetMapping("list_cache")
    public JsonData listCardCache(){


        Object cacheObj = redisTemplate.opsForValue().get(VIDEO_CARD_CACHE_KEY);

        if(cacheObj != null){

            List<VideoCardDO> list = (List<VideoCardDO>) cacheObj;
            return JsonData.buildSuccess(list);

        } else {

            List<VideoCardDO> list = videoCardService.list();

            redisTemplate.opsForValue().set(VIDEO_CARD_CACHE_KEY,list,10,TimeUnit.MINUTES);

            return JsonData.buildSuccess(list);
        }

    }

发表评论 取消回复
表情 图片 链接 代码

分享