redis 序列化get set獲取不到原因記錄

2022-04-11 20:36:56 字數 485 閱讀 3028

最近專案裡面出現了個bug,把資料從資料庫中讀取後又訪問到redis裡面,之後再讀取。奇怪的是,有乙個 字段讀取不到。

public

class

circle

沒有獲取的字段是pid,訪問的時候 先從資料庫中讀取,這個時候是有值的。再把整個物件 序列化後訪問。但是讀的時候總是0. 

原因就是:使用idea的get/set快捷生成建的方法:

public

intgettid()

public

void settid(int

tid)

經過redis序列化是獲取不到的。

而且這個get set 也不太標準,具體的原始碼沒找到,但是把 tid改成tid 再重新生成get set方法是可以獲取的了。因為這個類使用到的地方太多,快取採取的策略是 重新寫乙個 entity,把tid重新賦值,然後把這個新的entity 放到快取裡面。這樣既可獲取。

Redis例項 序列化和反序列化

由於每個字串型別鍵只能儲存乙個字串,而一篇部落格文章是由標題 正文 作者與發布時間等多個元素構成的。為了儲存這些元素,我們需要使用序列化函式 如serialize 將它們轉換成乙個字串。除此之外,因為字串型別鍵可以儲存二進位制資料,所以也可以使用messagepack進行序列化,它的速度更好,占用空...

redis序列化器

redis和session共享牽扯到了序列化器,所以找了找資料 redis快取用到了序列化,如果是存string就不需要用到序列化,但是如果需要存bean物件和集合物件,就必須要轉序列化,這說幾種 jdkserializationredisserializer 這個是spring data redi...

mysql序列化自增 redis 自動序列化的坑

最近專案裡需要用redis來存一下物件 陣列。然後一如既往的按照 redis set key,object 結果發現存不進去。然後讓同事試了一下,沒想到他那邊竟然可以存。當時就糾結了,reids版本 配置啥的都一樣啊,怎麼他的能直接存,我的就一直不行。經過一番折騰後,突然發現這麼一篇文章 redis...