使用redis操作对象,一定要进行序列化
- 引入spring-boot-starter-data-redis
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 在application.yml或者application.properties文件中配置redis连接信息
- 在代码中使用RedisTemplate操作redis
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set
具体操作示例:
1. 注入RedisTemplate,Mapper
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private DictDataMapper dictDataMapper;
public List<DictData> queryByDictCode(String dictData) {
try {
//从redis缓存中获取数据,否则执行mapper方法查询数据库
Object hash = redisTemplate.opsForHash().get("dict", dictData);
//如果缓存中有数据直接返回
if (hash != null) {
System.out.println("从缓存中拿到数据:"+hash.toString());
return (List<DictData>) hash;
}
} catch (Exception e) {
e.printStackTrace();
}
DictDataExample dictDataExample = new DictDataExample();
//设置排序方式 参数:字段名 排序规则 中间以空格隔开
dictDataExample.setOrderByClause("route_no DESC");
//设置where条件
dictDataExample.createCriteria().andDictCodeEqualTo(dictData);
List<DictData> dictDataList = dictDataMapper.selectByExample(dictDataExample);
try {
redisTemplate.opsForHash().put("dict", dictData, dictDataList);
} catch (Exception e) {
e.printStackTrace();
}
return dictDataList;
}
网友评论