这是一个通用思路我们以后用redis做缓存都可以这样操作。接收店铺id检查redis中如果有存储就直接返回数据如果没有就查询数据库如果查到了就存到redis并返回数据如果没找到返回报错信息。Service public class ShopServiceImpl extends ServiceImplShopMapper, Shop implements IShopService { Resource private StringRedisTemplate stringRedisTemplate; /** * 根据id查询商铺信息 */ Override public Result queryById(Long id) { //从redis查缓存 String key CACHE_SHOP_KEY id.toString(); String shopJson stringRedisTemplate.opsForValue().get(key); //判断是否存在 if(StrUtil.isNotBlank(shopJson)){ //存在直接返回 Shop shop JSONUtil.toBean(shopJson, Shop.class); return Result.ok(shop); } //不存在根据id查询数据库 Shop shop getById(id); //不存在返回错误 if(shop null){ return Result.fail(商铺不存在); } //存在写入redis stringRedisTemplate.opsForValue().set(key,JSONUtil.toJsonStr(shop)); //返回商铺信息 return Result.ok(shop); } }
黑马点评技术汇总(二)redis缓存通用思路
这是一个通用思路我们以后用redis做缓存都可以这样操作。接收店铺id检查redis中如果有存储就直接返回数据如果没有就查询数据库如果查到了就存到redis并返回数据如果没找到返回报错信息。Service public class ShopServiceImpl extends ServiceImplShopMapper, Shop implements IShopService { Resource private StringRedisTemplate stringRedisTemplate; /** * 根据id查询商铺信息 */ Override public Result queryById(Long id) { //从redis查缓存 String key CACHE_SHOP_KEY id.toString(); String shopJson stringRedisTemplate.opsForValue().get(key); //判断是否存在 if(StrUtil.isNotBlank(shopJson)){ //存在直接返回 Shop shop JSONUtil.toBean(shopJson, Shop.class); return Result.ok(shop); } //不存在根据id查询数据库 Shop shop getById(id); //不存在返回错误 if(shop null){ return Result.fail(商铺不存在); } //存在写入redis stringRedisTemplate.opsForValue().set(key,JSONUtil.toJsonStr(shop)); //返回商铺信息 return Result.ok(shop); } }