有时候,我们会用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);