springboot中,使用redisTemplate操作redis

知识点:

     springboot中整合redis

     springboot中redisTemplate的使用

     redis存数据时,key出现乱码问题

springboot中整合redis

  (1)pom.xml文件中引入依赖

<!--加入redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

(2)application.yml文件中加入redis相关配置


host:redis 服务器地址
port:6379 端口
database:数据库索引(默认为0)
password:服务器连接密码(默认为空)
timeout:连接超时时间(毫秒)

springboot中redisTemplate的使用

(1)redis操作的工具类RedisUtil

(2)使用redisTemplate存取数据

   service层(hash值):

       //存取redis值
      public Map<String, Object> testRedisTemplate(Integer id){    //id=1852
               Map<String, Object> user=new HashMap<>();
               Map<String, Object> userResult=redisUtil.getHash("USER_BY_ID"+id);

               //如果redis中,没有存放值,存入redis
               if(userResult.size()==0){
                      user = userMapper.findUserById(id);
                      redisUtil.setHash("USER_BY_ID"+id, user,120L);   //120L是有效时间120秒,120秒以后redis中的数据自动删除
               }else{

                     //如果redis中,有值,直接取redis中的值
                      user=userResult;
                }
                      return user;
         }

  redis中存放的数据:

redis存数据时,key的乱码问题

上面redis中存放的名字和值都乱码了,该如何解决呢?

我们可以在RedisUtil工具类中加

//解决乱码问题
@Autowired(required = false)
public void setRedisTemplate(RedisTemplate redisTemplate) {
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setKeySerializer(stringSerializer);
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setHashKeySerializer(stringSerializer);
redisTemplate.setHashValueSerializer(stringSerializer);
this.redisTemplate = redisTemplate;
}
改过之后,redis存放的结果


源码:https://github.com/shuaishuaihand/cacheandredis.git

原文地址:https://www.cnblogs.com/shuaifing/p/11213253.html