1. 程式人生 > >Spring Memcached 使用incr 方法報cannot increment or decrement non-numeric value 解決方法

Spring Memcached 使用incr 方法報cannot increment or decrement non-numeric value 解決方法

有時候,我們會用memcached 儲存一些數值的計算值。當cache中不存在某個KEY時,我們首先會使用set 方法設定值:

cache.set("AA", 0, 12, SerializationType.PROVIDER);
但在用incr 或decr 方法繼續對該KEY的快取值增加減得的候就會報錯:spring memcached cannot increment or decrement non-numeric value 。
cache.incr("AA", 2, 2);
事實上spring-memcahed在首次儲存值的時候,如果值是數字型,會自動轉化為字串儲存,所以才報了以上的錯誤。
而解決的方法很簡單,只需要首次儲存的時候儲存字串型別的值,後面用incr或decr 就不會再報上面的錯。
cache.set("AA", 0, "12", SerializationType.PROVIDER);