案例:查询 如果redis有数据则使用redis数据 如果没数据则从mysql查 使用mysql的数据 然后存入redis
1.存单个对象
/**
*
* 单个对象缓存在redis
* @param id
* @return
*/
@GetMapping("/redis")
public User redisTest(Long id)
{
log.info("参数:"+id);
String redisKey ="redis"+id;
//判断key是否存在
boolean exists= redisUtil.exists(redisKey);
if (exists)
{
//从redis读取
String json= redisUtil.get(redisKey,0);
log.info("从redis读取json:"+json);
//反序列化为对象
User user =JSON.parseObject(json,User.class);
return user;
}
else
{
//从mysql查
User user=iUserService.selectById(id);
//转成json字符串 存入redis
String userJson= JSON.toJSONString(user);
log.info("从mysql读取userJson:"+userJson);
//存入redis
redisUtil.set(redisKey,userJson,0);
//设置过期时间
redisUtil.expire(redisKey,2000,0);
return user;
}
//User userInfo =iUserService.selectById(id);
/* redisUtil.set("900","1000",1);
String value= redisUtil.get("900",0);
System.out.println(value);*/
//删除
/* Long del= redisUtil.del("11","111");
System.out.println(del)*/
//追加
/* Long len= redisUtil.append("900","888");
System.out.println(len);*/
// redisUtil.flushDB();
}
2.缓存List<对象>
/**
* List 存贮
*
* @return
*/
@GetMapping("/selectAll")
public List<User> selectAll()
{
String redisKey ="redisList";
//判断key是否存在
boolean exists= redisUtil.exists(redisKey);
if (exists)
{
//从redis读取
String json= redisUtil.get(redisKey,0);
log.info("从redis读取json:"+json);
//反序列化为对象
List<User> user =JSON.parseArray(json,User.class);
return user;
}
else
{
//从mysql查
List<User> user=iUserService.selectList(new EntityWrapper<>());
//转成json字符串 存入redis
String userJson= JSON.toJSONString(user);
log.info("从mysql读取userJson:"+userJson);
//存入redis
redisUtil.set(redisKey,userJson,0);
//设置过期时间
redisUtil.expire(redisKey,2000,0);
return user;
}
}