Redis实战篇---添加缓存(店铺类型添加缓存需求)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、Redis添加缓存
原先:
优化:
二、为店铺查询添加缓存
三、
@Service
public class ShopTypeServiceImpl extends ServiceImpl<ShopTypeMapper, ShopType> implements IShopTypeService {@Autowiredprivate StringRedisTemplate stringRedisTemplate;@Overridepublic Result queryTypeList() {//1.在redis当中查询商铺类型列表缓存是否存在String key = RedisConstants.CACHE_SHOP_TYPE_KEY;List<String> shopTypeListJson = stringRedisTemplate.opsForList().range(key, 0, -1);//2.存在直接返回if(CollectionUtil.isNotEmpty(shopTypeListJson)){//将所有的jsonList转化为对象list,并排序List<ShopType> shopTypeList = shopTypeListJson.stream().map(str-> JSONUtil.toBean(str, ShopType.class)).sorted(Comparator.comparingInt(ShopType::getSort)).collect(Collectors.toList());return Result.ok(shopTypeList);}//3. 不存在,查询数据库使用mp提供的接口List<ShopType> shopTypeList = query().orderByAsc("sort").list();//4.数据库中不存在, 返回错误if (CollectionUtil.isEmpty(shopTypeList)){return Result.fail("商铺类型列表为空!");}shopTypeListJson = shopTypeList.stream().sorted(Comparator.comparingInt(ShopType::getSort)).map(shopType -> JSONUtil.toJsonStr(shopType)).collect(Collectors.toList());//5.保存到Redis当中stringRedisTemplate.opsForList().rightPushAll(key, shopTypeListJson);//6.返回信息return Result.ok(shopTypeList);}}
总结
添加缓存能从系统性能、资源消耗、用户体验等多个维度带来显著优化,核心是通过 “将高频访问的数据暂存到快速存储介质”,减少对底层慢设备(如数据库、硬盘)的直接依赖