高并发商品首页热点数据开发

一 简介

  • 热点数据

    • 经常会被查询,但是不经常被修改或者删除的数据
    • 首页-详情页
  • 链路逻辑

    • 检查缓存是否有
    • 缓存不存在则查询数据库
    • 查询结果放到缓存,设置过期时间
    • 下次访问则命中缓存

二 接口开发

@RequestMapping("/api/v1/card")
@RestController
public class VideoCardController {


    @Autowired
    private VideoCardService videoCardService;

    @Autowired
    private RedisTemplate redisTemplate;

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

    /**
     * 有缓存
     * @return
     */
    @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);
        }

    }


    /**
     * 无缓存
     * @return
     */
    @GetMapping("list_nocache")
    public JsonData listCardNoCache(){


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

        return JsonData.buildSuccess(list);

    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值