Bootstrap

黑马---Redis实战篇

(一)、缓存

(1)、什么是缓存

缓存就是数据交换的缓冲区,称作Cache,是存储数据的临时地方,一般读写性能高 

(2)、添加Redis缓存

 service层代码

@Override
	public Result getShopById(Long id) {
		String key = RedisConstants.CACHE_SHOP_KEY + id;
		//  TODO  1. 在缓存中查找数据
		String shopJson = stringRedisTemplate.opsForValue().get(key);
		//  TODO  2. 缓存中存在,直接将数据返回
		if (!StrUtil.isBlank(shopJson)) {
			Shop shop = JSONUtil.toBean(shopJson, Shop.class);
			return Result.ok(shop);
		}
		//  TODO  3. 缓存中不存在,在数据库中进行查找
		Shop shop = shopMapper.selectById(id);
		//  TODO  4. 数据库中不存在,返回【商铺信息不存在】
		if (shop == null) return Result.fail("商铺信息不存在");
		//  TODO  5. 数据库中存在,将数据写入到缓存中并且将数据返回给前端
		String shopJsonFromDataBase = JSONUtil.toJsonStr(shop);
		stringRedisTemplate.opsForValue().set(key,shopJsonFromDataBase);
		return Result.ok(shop);
	}

(3)、缓存更新策略

;