使用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);
}
经验分享 程序员 微信小程序 职场和发展