简介:高并发商品首页热点数据开发实战
- 热点数据
- 经常会被查询,但是不经常被修改或者删除的数据
- 首页-详情页
- 链路逻辑
- 检查缓存是否有
- 缓存不存在则查询数据库
- 查询结果放到缓存,设置过期时间
- 下次访问则命中缓存
- 接口开发
- 模拟数据库查询耗时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); } }
本文作者为DBC,转载请注明。