使用redis緩存對象,該選擇json還是序列化呢。


使用redis緩存對象,該選擇json還是序列化呢。

 

 

0
 
 
蕃薯哥哥
蕃薯哥哥 

如果對這個對象只有存取的操作,最好使用json。

如果在對象被緩存期間有對屬性的操作,比如購物車,可能會更改購買數量,這時候最好使用map,不然你存json需要先取出來再修改再存儲,很耗性能。

怎么使用map可以參考樓上的帖子。

 
 
0
 
 
 
0
 
 
盲人摸象
盲人摸象 
 介紹你看我的一篇博客    http://my.oschina.net/yuyidi/blog/499951     
 
 
0
 
 
薛定諤的大鹿
薛定諤的大鹿 
當然是json string ,序列化以后的對象,如果源對象的屬性有修改,那么反序列化的時候就會報錯。
 
 
0
 
 
googlespot
googlespot 
首先Json就序列化的一種,不過是可讀的文本不是二進制的。再者這里猜想問題是否是該用redis的hash還是String來存儲
 
 
0
 
 
亭舸翁
亭舸翁 
json也是序列化的一種嘛。當然也可以選擇kyro,protobuf,hessian等。使用這些序列化方式而不是各語言內建的序列化機制的一個好處是,可以支持使用不同的編程語言進行修改或者讀取。同時,就java而言,內建的序列化機制在時間和空間上相比json都沒有啥優勢
 
 
0
 
 
B
boonbai 
如果是數據完全可以使用JSON方式。畢竟redis直接set、get使用起來門檻低很多。redis是沒有提供專用的設置對象方法,需要自己進行改寫。如果是擔心JSON轉對象會消耗資源的情況,這個問題需要考量幾個地方,第一點:就是使用的JSON轉換lib是否就會存在性能問題。第二點:就是數據的數據量級別,如果是存儲百萬級的大數據對象,建議采用存儲序列化對象方式。如果是少量的數據級對象,或者是數據對象字段不多,還是建議采用JSON轉換成String方式。畢竟redis對存儲字符類型這部分優化的非常好。具體采用的方式與方法,還要看你所使用的場景。
 
 
0
 
 
B
boonbai 
能用JSON就用JSON。可以將JSON轉換成String進行存儲。
 
 
0
 
 
蘭兒飛飛
蘭兒飛飛 
當然序列化好一些,json再轉回對象時也是要消耗資源的
 
轉 https://www.oschina.net/question/228694_2151535?sort=time


免責聲明!

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



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