springboot整合redis使用RedisTemplate

2018-06-08  本文已影响0人  Triste花刺

使用redis操作对象,一定要进行序列化

  1. 引入spring-boot-starter-data-redis
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
  1. 在application.yml或者application.properties文件中配置redis连接信息
  2. 在代码中使用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;
}
上一篇下一篇

猜你喜欢

热点阅读