jetcache icon indicating copy to clipboard operation
jetcache copied to clipboard

jetcache(RedisLettuceCache) GET error

Open Skqing opened this issue 3 months ago • 3 comments

版本

image

配置

jetcache:
  statIntervalMinutes: 30
  areaInCacheName: false
  local:
    default:
      type: linkedhashmap
      keyConvertor: fastjson2
      limit: 500
  remote:
    default:
      type: redis.lettuce
      keyConvertor: fastjson2
      valueEncoder: java
      valueDecoder: java
      mode: cluster
      uri:
       - redis://172.18.0.80:6379
       - redis://172.18.0.81:6380
       - redis://172.18.0.82:6381

代码

暂无法定位,本来想根据异常日志进行定位,但jecache的异常只有一句话,没有更详细的信息,关键是打印出的key是转换后的,无法确定是操作哪个key导致的。

异常

2024-05-14 11:05:18.407 [lettuce-epollEventLoop-4-2] ERROR [com.alicp.jetcache.support.SquashedLogger.error: 54] - jetcache(RedisLettuceCache) GET error. key=[32754987]
2024-05-14 11:05:18.412 [lettuce-epollEventLoop-4-1] ERROR [com.alicp.jetcache.support.SquashedLogger.error: 71] - jetcache(RedisLettuceCache) GET error. key=[33536723] 
2024-05-14 11:05:21.415 [lettuce-epollEventLoop-4-2] ERROR [com.alicp.jetcache.support.SquashedLogger.error: 71] - jetcache(RedisLettuceCache) GET error. key=[80005466]

获取部分缓存时报错,但这个报错的key跟实际的key不一样,找不到对应的key。 相同项目中,并非所有获取都会报错。 这个key能不能打印设置的key?这样好找到问题。 put("test") 打印的时候希望能打印的是"test,而不是数字

image

    protected void logError(String oper, Object key, Throwable e) {
        StringBuilder sb = new StringBuilder(256);
        sb.append("jetcache(")
                .append(this.getClass().getSimpleName()).append(") ")
                .append(oper)
                .append(" error.");
        if (!(key instanceof byte[])) {
            try {
                sb.append(" key=[")
                        .append(config().getKeyConvertor().apply((K) key))
                        .append(']');
            } catch (Exception ex) {
                // ignore
            }
        }
        SquashedLogger.getLogger(logger).error(sb, e);
    }

Skqing avatar May 14 '24 03:05 Skqing