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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM