From 41d4bda90689596a48931c2113dff16910a39bc6 Mon Sep 17 00:00:00 2001 From: huangcanda <954060834@qq.com> Date: Sat, 21 Jun 2025 22:19:48 +0800 Subject: [PATCH 1/2] perf(StringRedisTemplate): avoid redundant logger creation in execute(). Static logger eliminates expensive initialization per invocation. Signed-off-by: huangcanda <954060834@qq.com> --- .../data/redis/connection/DefaultStringRedisConnection.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java index c2ea198d8b..0d6a127845 100644 --- a/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java @@ -87,7 +87,7 @@ public class DefaultStringRedisConnection implements StringRedisConnection, Deco private static final byte[][] EMPTY_2D_BYTE_ARRAY = new byte[0][]; - private final Log log = LogFactory.getLog(DefaultStringRedisConnection.class); + private static final Log log = LogFactory.getLog(DefaultStringRedisConnection.class); private final RedisConnection delegate; private final RedisSerializer serializer; private Converter bytesToString = new DeserializingConverter(); From bf563f48629f0de84ae86a5d0b80e6a89e5a6625 Mon Sep 17 00:00:00 2001 From: huangcanda <954060834@qq.com> Date: Tue, 29 Jul 2025 17:00:21 +0800 Subject: [PATCH 2/2] Make loggers static final Signed-off-by: huangcanda <954060834@qq.com> --- .../data/redis/connection/AbstractRedisConnection.java | 2 +- .../data/redis/connection/jedis/JedisClusterConnection.java | 2 +- .../data/redis/connection/jedis/JedisConnection.java | 4 ++-- .../redis/connection/lettuce/LettuceClusterConnection.java | 4 ++-- .../data/redis/connection/lettuce/LettuceConnection.java | 4 ++-- .../redis/connection/lettuce/LettuceConnectionFactory.java | 4 ++-- .../data/redis/core/RedisKeyValueAdapter.java | 2 +- .../data/redis/listener/RedisMessageListenerContainer.java | 5 ++--- .../data/redis/listener/adapter/MessageListenerAdapter.java | 3 +-- .../data/redis/repository/cdi/RedisRepositoryExtension.java | 2 +- .../data/redis/stream/DefaultStreamReceiver.java | 2 +- 11 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/main/java/org/springframework/data/redis/connection/AbstractRedisConnection.java b/src/main/java/org/springframework/data/redis/connection/AbstractRedisConnection.java index 46a7a12ded..be70989198 100644 --- a/src/main/java/org/springframework/data/redis/connection/AbstractRedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/AbstractRedisConnection.java @@ -35,7 +35,7 @@ */ public abstract class AbstractRedisConnection implements RedisConnection { - private final Log LOGGER = LogFactory.getLog(getClass()); + private static final Log LOGGER = LogFactory.getLog(AbstractRedisConnection.class); private @Nullable RedisSentinelConfiguration sentinelConfiguration; private final Map connectionCache = new ConcurrentHashMap<>(); diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java index 51f6f3cd14..a63af00354 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java @@ -80,7 +80,7 @@ public class JedisClusterConnection implements RedisClusterConnection { private static final ExceptionTranslationStrategy EXCEPTION_TRANSLATION = new FallbackExceptionTranslationStrategy( JedisExceptionConverter.INSTANCE); - private final Log log = LogFactory.getLog(getClass()); + private static final Log log = LogFactory.getLog(JedisClusterConnection.class); private final JedisCluster cluster; private final JedisClusterGeoCommands geoCommands = new JedisClusterGeoCommands(this); diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java index 5888498d2b..262073ebd7 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java @@ -79,6 +79,8 @@ */ public class JedisConnection extends AbstractRedisConnection { + private static final Log LOGGER = LogFactory.getLog(JedisConnection.class); + private static final ExceptionTranslationStrategy EXCEPTION_TRANSLATION = new FallbackExceptionTranslationStrategy(JedisExceptionConverter.INSTANCE); @@ -108,8 +110,6 @@ public class JedisConnection extends AbstractRedisConnection { private final JedisStringCommands stringCommands = new JedisStringCommands(this); private final JedisZSetCommands zSetCommands = new JedisZSetCommands(this); - private final Log LOGGER = LogFactory.getLog(getClass()); - @SuppressWarnings("rawtypes") private List pipelinedResults = new ArrayList<>(); diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnection.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnection.java index 41a7cb94e1..079fa3fa55 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClusterConnection.java @@ -70,6 +70,8 @@ public class LettuceClusterConnection extends LettuceConnection implements RedisClusterConnection, DefaultedRedisClusterConnection { + private static final Log log = LogFactory.getLog(LettuceClusterConnection.class); + static final ExceptionTranslationStrategy exceptionConverter = new PassThroughExceptionTranslationStrategy( LettuceExceptionConverter.INSTANCE); @@ -79,8 +81,6 @@ public class LettuceClusterConnection extends LettuceConnection private ClusterTopologyProvider topologyProvider; - private final Log log = LogFactory.getLog(getClass()); - private final LettuceClusterGeoCommands geoCommands = new LettuceClusterGeoCommands(this); private final LettuceClusterHashCommands hashCommands = new LettuceClusterHashCommands(this); private final LettuceClusterHyperLogLogCommands hllCommands = new LettuceClusterHyperLogLogCommands(this); diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java index fe646b3a1b..c2e0e7cf5e 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java @@ -104,6 +104,8 @@ */ public class LettuceConnection extends AbstractRedisConnection { + private static final Log LOGGER = LogFactory.getLog(LettuceConnection.class); + private static final ExceptionTranslationStrategy EXCEPTION_TRANSLATION = new FallbackExceptionTranslationStrategy( LettuceExceptionConverter.INSTANCE); @@ -154,8 +156,6 @@ public List convert(List execResults) { private @Nullable List> ppline; - private final Log LOGGER = LogFactory.getLog(getClass()); - private PipeliningFlushPolicy pipeliningFlushPolicy = PipeliningFlushPolicy.flushEachCommand(); private @Nullable PipeliningFlushState pipeliningFlushState; diff --git a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java index befdfffe50..d0c5082097 100644 --- a/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java +++ b/src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnectionFactory.java @@ -120,6 +120,8 @@ public class LettuceConnectionFactory implements RedisConnectionFactory, ReactiveRedisConnectionFactory, InitializingBean, DisposableBean, SmartLifecycle { + private static final Log log = LogFactory.getLog(LettuceConnectionFactory.class); + private static final ExceptionTranslationStrategy EXCEPTION_TRANSLATION = new PassThroughExceptionTranslationStrategy( LettuceExceptionConverter.INSTANCE); @@ -144,8 +146,6 @@ public class LettuceConnectionFactory implements RedisConnectionFactory, Reactiv private @Nullable LettuceConnectionProvider connectionProvider; private @Nullable LettuceConnectionProvider reactiveConnectionProvider; - private final Log log = LogFactory.getLog(getClass()); - private final Lock lock = new ReentrantLock(); private PipeliningFlushPolicy pipeliningFlushPolicy = PipeliningFlushPolicy.flushEachCommand(); diff --git a/src/main/java/org/springframework/data/redis/core/RedisKeyValueAdapter.java b/src/main/java/org/springframework/data/redis/core/RedisKeyValueAdapter.java index 3d527becd7..28680971a0 100644 --- a/src/main/java/org/springframework/data/redis/core/RedisKeyValueAdapter.java +++ b/src/main/java/org/springframework/data/redis/core/RedisKeyValueAdapter.java @@ -113,7 +113,7 @@ public class RedisKeyValueAdapter extends AbstractKeyValueAdapter */ private static final int PHANTOM_KEY_TTL = 300; - private final Log logger = LogFactory.getLog(getClass()); + private static final Log logger = LogFactory.getLog(RedisKeyValueAdapter.class); private final AtomicReference state = new AtomicReference<>(State.CREATED); private RedisOperations redisOps; diff --git a/src/main/java/org/springframework/data/redis/listener/RedisMessageListenerContainer.java b/src/main/java/org/springframework/data/redis/listener/RedisMessageListenerContainer.java index a563bdb1ed..5065689385 100644 --- a/src/main/java/org/springframework/data/redis/listener/RedisMessageListenerContainer.java +++ b/src/main/java/org/springframework/data/redis/listener/RedisMessageListenerContainer.java @@ -107,6 +107,8 @@ */ public class RedisMessageListenerContainer implements InitializingBean, DisposableBean, BeanNameAware, SmartLifecycle { + protected static final Log logger = LogFactory.getLog(RedisMessageListenerContainer.class); + /** * The default recovery interval: 5000 ms = 5 seconds. */ @@ -123,9 +125,6 @@ public class RedisMessageListenerContainer implements InitializingBean, Disposab public static final String DEFAULT_THREAD_NAME_PREFIX = ClassUtils.getShortName(RedisMessageListenerContainer.class) + "-"; - /** Logger available to subclasses */ - protected final Log logger = LogFactory.getLog(getClass()); - // whether the container has been initialized via afterPropertiesSet private boolean afterPropertiesSet = false; diff --git a/src/main/java/org/springframework/data/redis/listener/adapter/MessageListenerAdapter.java b/src/main/java/org/springframework/data/redis/listener/adapter/MessageListenerAdapter.java index fb7d827728..b684226c0b 100644 --- a/src/main/java/org/springframework/data/redis/listener/adapter/MessageListenerAdapter.java +++ b/src/main/java/org/springframework/data/redis/listener/adapter/MessageListenerAdapter.java @@ -159,8 +159,7 @@ public String getMethodName() { */ public static final String ORIGINAL_DEFAULT_LISTENER_METHOD = "handleMessage"; - /** Logger available to subclasses */ - protected final Log logger = LogFactory.getLog(getClass()); + protected static final Log logger = LogFactory.getLog(MessageListenerAdapter.class); private volatile @Nullable Object delegate; diff --git a/src/main/java/org/springframework/data/redis/repository/cdi/RedisRepositoryExtension.java b/src/main/java/org/springframework/data/redis/repository/cdi/RedisRepositoryExtension.java index 69469551fc..25d9d83778 100644 --- a/src/main/java/org/springframework/data/redis/repository/cdi/RedisRepositoryExtension.java +++ b/src/main/java/org/springframework/data/redis/repository/cdi/RedisRepositoryExtension.java @@ -51,7 +51,7 @@ */ public class RedisRepositoryExtension extends CdiRepositoryExtensionSupport { - private final Log log = LogFactory.getLog(RedisRepositoryExtension.class); + private static final Log log = LogFactory.getLog(RedisRepositoryExtension.class); private final Map, Bean> redisKeyValueAdapters = new HashMap<>(); private final Map, Bean> redisKeyValueTemplates = new HashMap<>(); private final Map, Bean>> redisOperations = new HashMap<>(); diff --git a/src/main/java/org/springframework/data/redis/stream/DefaultStreamReceiver.java b/src/main/java/org/springframework/data/redis/stream/DefaultStreamReceiver.java index 9d9349e18b..35e7fef935 100644 --- a/src/main/java/org/springframework/data/redis/stream/DefaultStreamReceiver.java +++ b/src/main/java/org/springframework/data/redis/stream/DefaultStreamReceiver.java @@ -58,7 +58,7 @@ */ class DefaultStreamReceiver> implements StreamReceiver { - private final Log logger = LogFactory.getLog(getClass()); + private static final Log logger = LogFactory.getLog(DefaultStreamReceiver.class); private final ReactiveRedisTemplate template; private final ReactiveStreamOperations streamOperations; private final StreamReadOptions readOptions;