使用Redis缓存是首先是要在搜索的时候判断是否缓存里是否有数据,有数据的话直接拿出数据,没有数据就先从数据库中拿出数据,然后再放到缓存中,在输出数据。
所需要的jar包依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.3.2</version>
</dependency>
// 根据内容id查询
@Autowired
private Mapper mapper;
@Autowired
private JedisPool jedisPoll;
@Override
public TbContent getCategoryId(long id) {
// 1.查询缓存
Jedis jedis = jedisPoll.getResource();
// 2.判断是否存在
String redisValue = jedis.hget("CONTENT", String.valueOf(id));
if (redisValue == null || redisValue.trim().equals("")) {
// 2.1如果不存在,则查询数据/从数据库中查询
TbContent content = tbContentMapper.selectByCategoryId(categoryId);
// 2.2将数据库中的数据存放在Redis中
String json = JsonUtils.objectToJson(content);
jedis.hset("CONTENT", id + "", json);
System.out.println("从数据库中获取");
return content;
} else {
// 3.返回数据,从Redis缓存中获取
TbContent content = JsonUtils.jsonToPojo(redisValue, TbContent.class);
System.out.println("从Redis中。。。。。。");
jedis.close();
return content;
}
}