From 441194d813e591bd073db9d74c137ccbad6bae02 Mon Sep 17 00:00:00 2001
From: cjl <276999030@qq.com>
Date: Fri, 13 Oct 2023 10:26:10 +0800
Subject: [PATCH] fix:秒级数据调整补充提交
---
screen-manage/src/main/java/com/moral/api/config/redis/RedisConfig.java | 75 ++++++++++++++++++++++++++++++++++++-
1 files changed, 73 insertions(+), 2 deletions(-)
diff --git a/screen-manage/src/main/java/com/moral/api/config/redis/RedisConfig.java b/screen-manage/src/main/java/com/moral/api/config/redis/RedisConfig.java
index b63690d..5c1c10a 100644
--- a/screen-manage/src/main/java/com/moral/api/config/redis/RedisConfig.java
+++ b/screen-manage/src/main/java/com/moral/api/config/redis/RedisConfig.java
@@ -1,26 +1,38 @@
package com.moral.api.config.redis;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
+import org.springframework.data.redis.connection.RedisPassword;
+import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
+import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
+import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
+import org.springframework.data.redis.connection.lettuce.LettucePoolingClientConfiguration;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
+import redis.clients.jedis.JedisPoolConfig;
+
+import java.time.Duration;
@Configuration
public class RedisConfig {
- @Bean(name="redisTemplate")
+ @Bean(name = "redisTemplate")
@ConditionalOnMissingBean(StringRedisTemplate.class) //������������������ ���������������������RedisTemplate ������������ ������������������
- public RedisTemplate<String,Object> stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
+ public RedisTemplate<String, Object> stringRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
+
Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
@@ -39,4 +51,63 @@
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
+
+
+ @Bean(name = "tokenRedisTemplate")
+ public RedisTemplate<String, Object> getTokenRedisTemplate(
+ @Value("${spring.tokenRedis.host}") String hostName,
+ @Value("${spring.tokenRedis.password}") String password,
+ @Value("${spring.tokenRedis.port}") int port,
+ @Value("${spring.tokenRedis.database}") int database,
+ @Value("${spring.tokenRedis.pool.max-active}") int maxActive,
+ @Value("${spring.tokenRedis.pool.max-idle}") int maxIdle,
+ @Value("${spring.tokenRedis.pool.min-idle}") int minIdle,
+ @Value("${spring.tokenRedis.pool.max-wait}") long maxWait,
+ @Value("${spring.tokenRedis.timeout}") long timeout
+ ) {
+ RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration();
+ configuration.setHostName(hostName);
+ configuration.setPort(port);
+ configuration.setDatabase(database);
+ RedisPassword redisPassword = RedisPassword.of(password);
+ configuration.setPassword(redisPassword);
+
+ GenericObjectPoolConfig genericObjectPoolConfig = new GenericObjectPoolConfig();
+ genericObjectPoolConfig.setMaxTotal(maxActive);
+ genericObjectPoolConfig.setMinIdle(minIdle);
+ genericObjectPoolConfig.setMaxIdle(maxIdle);
+ genericObjectPoolConfig.setMaxWaitMillis(maxWait);
+
+ LettucePoolingClientConfiguration.LettucePoolingClientConfigurationBuilder builder = LettucePoolingClientConfiguration.builder();
+ builder.poolConfig(genericObjectPoolConfig);
+ builder.commandTimeout(Duration.ofSeconds(timeout));
+ LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory(configuration, builder.build());
+ connectionFactory.afterPropertiesSet();
+
+ return createRedisTemplate(connectionFactory);
+ }
+
+ public RedisTemplate createRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
+ RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
+ redisTemplate.setConnectionFactory(redisConnectionFactory);
+
+ Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);
+ ObjectMapper objectMapper = new ObjectMapper();
+ objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
+ objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);
+ jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
+
+ StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
+ // key������String������������������
+ redisTemplate.setKeySerializer(stringRedisSerializer);
+ // hash���key���������String������������������
+ redisTemplate.setHashKeySerializer(stringRedisSerializer);
+ // valuevalue������jackson���������������
+ redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);
+ // hash���value������jackson���������������
+ redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);
+ redisTemplate.afterPropertiesSet();
+ redisTemplate.afterPropertiesSet();
+ return redisTemplate;
+ }
}
--
Gitblit v1.8.0