in jetcache-support/jetcache-redis-lettuce/src/main/java/com/alicp/jetcache/redis/lettuce/RedisLettuceCache.java [161:193]
protected CacheGetResult<V> do_GET(K key) {
try {
byte[] newKey = buildKey(key);
RedisFuture<byte[]> future = stringAsyncCommands.get(newKey);
CacheGetResult<V> result = new CacheGetResult<>(future.handleAsync((valueBytes, ex) -> {
if (ex != null) {
logError("GET", key, ex);
return new ResultData(ex);
} else {
try {
if (valueBytes != null) {
CacheValueHolder<V> holder = (CacheValueHolder<V>) valueDecoder.apply(valueBytes);
if (System.currentTimeMillis() >= holder.getExpireTime()) {
return new ResultData(CacheResultCode.EXPIRED, null, null);
} else {
return new ResultData(CacheResultCode.SUCCESS, null, holder);
}
} else {
return new ResultData(CacheResultCode.NOT_EXISTS, null, null);
}
} catch (Exception exception) {
logError("GET", key, exception);
return new ResultData(exception);
}
}
}, JetCacheExecutor.defaultExecutor()));
setTimeout(result);
return result;
} catch (Exception ex) {
logError("GET", key, ex);
return new CacheGetResult(ex);
}
}