深入理解Spring Redis的使用 (五)、常見問題匯總


目前我所知道的Redistemplate里面,我沒有使用到的就是管道。這個可以進行批量的讀寫。類似於jdbc的batch。還有就是Redis的集群部署。但是由於我業務里沒有這種需求,所以沒有使用無法給大家進行講解。

遇到的問題有:

1.序列化器。

由於我是配置了全局唯一一個RedisTemplate,所以所有的dao都共用RedisTemplate,難免會出現有的無法使用公共的序列化器的。

比如一個統計數量的incr函數,這個調用的時候,Redis服務器存儲了一個字符串,通過valueoperaion進行get的時候,反序列化異常。這個因為默認的valueserializer是jdk序列化。但是服務器存儲了字符串。對於這種情況,我就重寫該Dao的get方法,自己使用RedisCallback調用。里面用StringSerializer反序列化,問題解決。

除此之外,還會存在一些別的問題。所以,對於一些基本類型來說,建議大家直接定義一個objectSerializer,里面先進行轉String,然后調用String.getbytes解決。反序列化這個問題我也沒到怎么處理。但是一般也很少getKey。如果有好的辦法請私信我。

 

2.腳本的事務問題

因為我的所有操作都是通過@transactional,讓spring來管理事務的,后來發現執行腳本的時候報錯。看異常才知道腳本不支持事務,但是進入方法前,spring已經把當前的connection進行了multi操作。去掉該注解,獨立出來這個方法解決。這個是要注意的地方。

 

其他的暫時沒遇到。遇到了繼續更新。


免責聲明!

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



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