2020-07-27 11:56
@JFinal
public Long hgetCounter(Object key, Object field) {
Jedis jedis = getJedis();
try {
byte[] hget = jedis.hget(keyToBytes(keyNamingPolicy.getKeyName(key)), fieldToBytes(keyNamingPolicy.getKeyName(field)));
if (ArrayUtil.isEmpty(hget)) {
return null;
}
String ret = SafeEncoder.encode(hget);
return ret != null ? Long.parseLong(ret) : null;
} finally {
close(jedis);
}
}
2020-07-25 16:41
@JFinal 我写的临时解决办法用的是jedis的hget,不是用的cache的hget。您看下cache的hincrBy和hgetCounter的源码,您修改后hincrBy的时候value没有使用FstSerializer.valueToBytes(byte[] bytes),而hgetCounter拿的时候value使用了FstSerializer.valueFromBytes(byte[] bytes),存取都不统一,肯定会有问题的
2020-07-13 19:05
@JFinal hincrBy的时候value没有使用FstSerializer.valueToBytes(byte[] bytes),拿的时候使用FstSerializer.valueFromBytes(byte[] bytes),会报错的,incrBy同理
2020-07-13 18:51
@JFinal 改成这样不就和hget一样了吗?会报错的,FstSerializer.valueFromBytes(byte[] bytes)会报错的