根据代码 public User findById(Integer id){ //先从Redis缓存中查询数据 Object object = redisTemplate.opsForValue().get("user_"+id); if(object!=null){ return (User)object; }else{ //缓存中没有,就从数据库中查询 User user=userMapper.findById(id); //将查询结果存入缓存并设置有效期为30秒 redisTemplate.opsForValue().set("user_"+id,user,30, TimeUnit.SECONDS); return user; }写一个findall存入到缓存
时间: 2024-01-06 12:06:56 浏览: 96
浅谈SpringCache与redis集成实现缓存解决方案
根据你提供的代码,假设你想要将 User 的所有数据存入 Redis 缓存中,可以按照以下方式实现:
```
public List<User> findAll() {
// 先从 Redis 缓存中查询数据
Object object = redisTemplate.opsForValue().get("users");
if (object != null) {
return (List<User>) object;
} else {
// 缓存中没有,就从数据库中查询
List<User> users = userMapper.findAll();
// 将查询结果存入缓存并设置有效期为30秒
redisTemplate.opsForValue().set("users", users, 30, TimeUnit.SECONDS);
return users;
}
}
```
需要注意的是,由于 User 类型是一个对象,如果要存储多个 User 对象,可以使用 List<User> 进行存储。此外,如果你的 User 对象比较大,建议不要将所有数据都存入缓存,而是选择存储部分关键数据,以节省缓存空间。
阅读全文