使用redis进行缓存用户相关信息

使用redis进行缓存用户相关信息

使用redis进行查询之后缓存的流程:

  1. 优先从缓存中取值
  2. 取不到时去数据库查询,并初始化缓存数据
  3. 数据变更时清除缓存数据

在这里插入图片描述

主体代码实现

    //根据id查找用户
    @Override
    public User selectById(int id) {
//        User user = userDao.selectById(id);
//        return user;
        //先去缓存中去user数据,如果没有的话就去数据库中找,并在缓存中初始化一个数据。
        User user = getCache(id);
        if (user == null){
            user = initCache(id);
        }
        return user;
    }



//1.优先从缓存中取值
private User getCache(int userId){
    String redisKey = RedisKeyUtil.getUserKey(userId);
    return (User) redisTemplate.opsForValue().get(redisKey);
}
//2.取不到时初始化缓存数据
private User initCache(int userId){
    User user = userDao.selectById(userId);
    String redisKey = RedisKeyUtil.getUserKey(userId);
    redisTemplate.opsForValue().set(redisKey,user,3600, TimeUnit.SECONDS);
    return user;
}

//3.数据变更时清除缓存数据
private void clearCache(int userId){
    String redisKey = RedisKeyUtil.getUserKey(userId);
    redisTemplate.delete(redisKey);
}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值