Skip to content
DAILY QUOTE

“ ”

  • 什么是缓存?

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

缓存数据存储于代码中,而代码运行在内存中,内存的读写性能远高于磁盘,缓存可以大大降低用户访问并发量带来的服务器读写压力。

但是缓存也会增加代码复杂度和运营的成本:

添加商户缓存

JAVA
/**
 * 根据id查询数据。
 *
 * 作用:
 * 1.从Redis查询商铺缓存;
 * 2.判断是否存在;
 * 3.存在,直接返回;
 * 4.不存在,根据id查询数据库;
 * 5.不存在,返回错误;
 *
 * @param id业务id
 * @return处理结果
 */
@Override
public Result queryById(Long id) {
    String key=RedisConstants.CACHE_SHOP_KEY+id;
    //1.从Redis查询商铺缓存
    String shopJson=stringRedisTemplate.opsForValue().get(key);
    //2.判断是否存在
    if(StrUtil.isNotEmpty(shopJson)){
        //3.存在,直接返回
        Shop shop= JSONUtil.toBean(shopJson,Shop.class);
        return Result.ok(shop);
    }
    //4.不存在,根据id查询数据库
    Shop shop=getById(id);
    //5.不存在,返回错误
    if(shop==null){
        return Result.fail("店铺不存在");
    }
    //6.存在,写入Redis
    stringRedisTemplate.opsForValue().set(key,JSONUtil.toJsonStr(shop));
    //7.返回
    return Result.ok(shop);
}

对于店铺详细这类变化较为频繁的数据,我们是直接存入Redis中,后面还会进行优化,设置合适的缓存更新策略,确保Redis和MySQL的数据一致性,以及解决缓存常见的三大问题