環境:
springboot+Redis:
問題背景:
代碼執行到increment()方法的時候報錯
原因:
上述異常的意思是,增加的值 不是integer 或者超出了integer範圍,是以才報的錯誤。
根據建議,隻有使用 StringRedisSerializer 序列化器才能使用increment方法。
實驗驗證:
為什麼使用了StringRedisSerializer就可以而使用預設序列化器就不行呢?
我們都知道序列号器是,将key或者value序列化成流,存儲到Redis。

總結:
GenericJackson2JsonRedisSerializer、Jackson2JsonRedisSerializer是先将對象轉為json,然後再儲存到redis,是以,1在redis中是字元串1,是以無法進行加1 JdkSerializationRedisSerializer使用的jdk對象序列化,序列化後的值有類資訊、版本号等,是以是一個包含很多字母的字元串,是以根本無法加1,這個序列化器跟memcache的序列化規則很像memcache怎樣存儲的對象 GenericToStringSerializer、StringRedisSerializer将字元串的值直接轉為位元組數組,是以儲存到redis中是數字,是以可以進行加1 ;
通過以下代碼配置redistemplate的序列化方式之後就可以順利的執行increment了;