|
|
@@ -5,15 +5,20 @@
|
|
|
|
|
|
package com.nb.common.config.redis;
|
|
|
|
|
|
+import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
+import com.nb.common.config.WebAppMvcConfig;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
import org.redisson.Redisson;
|
|
|
import org.redisson.api.RedissonClient;
|
|
|
import org.redisson.codec.JsonJacksonCodec;
|
|
|
+import org.redisson.codec.SerializationCodec;
|
|
|
import org.redisson.config.*;
|
|
|
+import org.redisson.connection.ConnectionListener;
|
|
|
import org.redisson.spring.starter.RedissonProperties;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.boot.autoconfigure.AutoConfigureAfter;
|
|
|
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
|
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
|
|
|
-import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
|
|
import org.springframework.boot.autoconfigure.data.redis.RedisAutoConfiguration;
|
|
|
import org.springframework.boot.autoconfigure.data.redis.RedisProperties;
|
|
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
|
|
@@ -21,6 +26,8 @@ import org.springframework.context.annotation.Bean;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
import org.springframework.context.annotation.Primary;
|
|
|
import org.springframework.data.redis.core.RedisOperations;
|
|
|
+
|
|
|
+import java.net.InetSocketAddress;
|
|
|
import java.time.Duration;
|
|
|
import java.util.*;
|
|
|
|
|
|
@@ -28,11 +35,15 @@ import java.util.*;
|
|
|
@ConditionalOnClass({Redisson.class, RedisOperations.class})
|
|
|
@AutoConfigureBefore({RedisAutoConfiguration.class})
|
|
|
@EnableConfigurationProperties({RedissonProperties.class, RedisProperties.class})
|
|
|
+@AutoConfigureAfter(ObjectMapper.class)
|
|
|
+@Slf4j
|
|
|
public class RedissonClientAutoConfiguration {
|
|
|
|
|
|
@Autowired
|
|
|
private RedisProperties redisProperties;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private ObjectMapper objectMapper;
|
|
|
public RedissonClientAutoConfiguration() {
|
|
|
}
|
|
|
|
|
|
@@ -72,7 +83,18 @@ public class RedissonClientAutoConfiguration {
|
|
|
// 这个线程池数量是在一个Redisson实例内,被其创建的所有分布式数据类型和服务,以及底层客户端所一同共享的线程池里保存的线程数量。
|
|
|
config.setThreads(Runtime.getRuntime().availableProcessors()*2);
|
|
|
config.setTransportMode(TransportMode.NIO);
|
|
|
- config.setCodec(new JsonJacksonCodec());
|
|
|
+ config.setCodec(new SerializationCodec());
|
|
|
+ config.setConnectionListener(new ConnectionListener() {
|
|
|
+ @Override
|
|
|
+ public void onConnect(InetSocketAddress addr) {
|
|
|
+ log.info("redisson client connect success, addr : {}",addr.toString());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onDisconnect(InetSocketAddress addr) {
|
|
|
+ log.info("redisson client disconnect success, addr : {}",addr.toString());
|
|
|
+ }
|
|
|
+ });
|
|
|
return Redisson.create(config);
|
|
|
}
|
|
|
}
|