From 0ed29a9b6e7cdeeea5f736d5cbe196849b4f22f7 Mon Sep 17 00:00:00 2001
From: xiaogang <905166056@qq.com>
Date: 星期三, 19 七月 2023 09:40:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into xinghong-dev
---
java110-core/src/main/java/com/java110/core/cache/Java110RedisConfig.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 99 insertions(+), 9 deletions(-)
diff --git a/java110-core/src/main/java/com/java110/core/cache/Java110RedisConfig.java b/java110-core/src/main/java/com/java110/core/cache/Java110RedisConfig.java
old mode 100644
new mode 100755
index a02bf8c..b2ff2ab
--- a/java110-core/src/main/java/com/java110/core/cache/Java110RedisConfig.java
+++ b/java110-core/src/main/java/com/java110/core/cache/Java110RedisConfig.java
@@ -1,7 +1,8 @@
package com.java110.core.cache;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.cache.CacheManager;
import org.springframework.cache.annotation.CachingConfigurerSupport;
import org.springframework.cache.annotation.EnableCaching;
@@ -11,14 +12,23 @@
import org.springframework.data.redis.cache.RedisCacheManager;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
-import org.springframework.data.redis.serializer.RedisSerializationContext;
+import org.springframework.data.redis.serializer.*;
+
+import org.springframework.util.StringUtils;
+import redis.clients.jedis.HostAndPort;
+import redis.clients.jedis.JedisCluster;
+import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.JedisPoolConfig;
import java.time.Duration;
+import java.util.HashSet;
+import java.util.Set;
+/**
+ * Created by wuxw on 2017/7/23.
+ */
@Configuration
-@EnableCaching //寮�鍚紦瀛橈紝榛樿鏄痳endis缂撳瓨锛岀户鎵緾achingConfigurerSupport 锛岀洿鎺ラ噸鍐欓噷闈㈢殑鏂规硶
-@ConditionalOnBean(Java110RedisCacheWriter.class)
+@EnableCaching
public class Java110RedisConfig extends CachingConfigurerSupport {
public final static String REDIS_EXPIRE_TIME_KEY = "#key_expire_time";
@@ -30,12 +40,84 @@
@Autowired
private RedisTemplate redisTemplate;
+ @Bean
+ public RedisTemplate<String,Object> redisTemplate(RedisConnectionFactory factory){
+ RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
+ redisTemplate.setConnectionFactory(factory);
+ redisTemplate.setKeySerializer(new StringRedisSerializer()); // key鐨勫簭鍒楀寲绫诲瀷
+ redisTemplate.setHashKeySerializer(new StringRedisSerializer());
+ redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer()); // value鐨勫簭鍒楀寲绫诲瀷
+ redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
+ redisTemplate.afterPropertiesSet();
+ return redisTemplate;
+ }
+
+ //@Bean(name = "jedisPool")
+ //@Autowired
+ public JedisPool jedisPool(@Qualifier("jedis.pool.config") JedisPoolConfig config,
+ @Value("${jedis.pool.host}") String host,
+ @Value("${jedis.pool.port}") int port,
+ @Value("${jedis.pool.timeout}") int timeout,
+ @Value("${jedis.pool.password}") String password) {
+ //娌℃湁閰嶇疆鏀逛负榛樿鍊�
+ if (timeout == 0) {
+ timeout = 2000;
+ }
+
+ if (StringUtils.isEmpty(password)) {
+ return new JedisPool(config, host, port, timeout);
+ } else {
+ return new JedisPool(config, host, port, timeout, password);
+ }
+ }
+
+
+ // @Bean(name = "jedisCluster")
+// @Autowired
+ public JedisCluster jedisCluster(@Qualifier("jedis.pool.config") JedisPoolConfig config,
+ @Value("${jedis.pool.host}") String host,
+ @Value("${jedis.pool.port}") int port,
+ @Value("${jedis.pool.timeout}") int timeout,
+ @Value("${jedis.pool.password}") String password) {
+ //娌℃湁閰嶇疆鏀逛负榛樿鍊�
+ if (timeout == 0) {
+ timeout = 2000;
+ }
+ String[] hosts = host.split(",");
+ Set<HostAndPort> nodes = new HashSet<>();
+ String[] tmpHosts = null;
+ for (String tmpHost : hosts) {
+ tmpHosts = tmpHost.split(":");
+ nodes.add(new HostAndPort(tmpHosts[0], Integer.parseInt(tmpHosts[1])));
+ }
+ JedisCluster cluster = new JedisCluster(nodes);
+ return cluster;
+ }
+
+ //@Bean(name = "jedis.pool.config")
+ public JedisPoolConfig jedisPoolConfig(@Value("${jedis.pool.config.maxTotal}") int maxTotal,
+ @Value("${jedis.pool.config.maxIdle}") int maxIdle,
+ @Value("${jedis.pool.config.maxWaitMillis}") int maxWaitMillis) {
+ JedisPoolConfig config = new JedisPoolConfig();
+ config.setMaxTotal(maxTotal);
+ config.setMaxIdle(maxIdle);
+ config.setMaxWaitMillis(maxWaitMillis);
+
+
+ return config;
+ }
+
+ @Bean
+ public RedisSerializer<String> redisKeySerializer(){
+ return new StringRedisSerializer();
+ }
+
+
@Override
@Bean
public CacheManager cacheManager() {
RedisConnectionFactory connectionFactory = redisTemplate.getConnectionFactory();
- System.out.printf("123123");
//涓婇潰瀹炵幇鐨勭紦瀛樿鍐�
Java110RedisCacheWriter java110RedisCacheWriter
= new Java110RedisCacheWriter(connectionFactory);
@@ -46,13 +128,21 @@
return cm;
}
+ /**
+ * @return
+ * @Cacheable鍜岄�氳繃RedisTemplate涔嬮棿鍘荤浉浜掕幏鍙栨暟鎹�
+ * @Cacheable娉ㄨВ瀛樺偍redis缂撳瓨鏁版嵁鍜岄�氳繃RedisTemplate鍘昏幏鍙栧瓨鍌ㄧ殑鏁版嵁锛岀敱浜嶡Cacheable榛樿鐨勫簭鍒楀寲缂栫爜瀛樺偍鍒版暟鎹负byte绫诲瀷锛岃�孯edisTemplate鐨勯粯璁ょ紪鐮佷负JdkSerializationRedisSerializer锛屾墍浠ヨ閫氳繃璁剧疆鍚屼竴涓簭鍒楀寲鏂瑰紡鍘昏В鍐抽棶棰橈紱 閫氳繃缁ф壙CachingConfigurerSupport骞朵笖寮�鍚疈EnableCaching鍘昏缃甤ache鐨勯厤缃�氳繃RedisCacheConfiguration.defaultCacheConfig()鍘昏缃簭鍒楀寲鐨勬柟寮廟edisTemplate<String, Object>璁剧疆RedisTemplate鐨勫簭鍒楀寲鏂瑰紡
+ * 璁剧疆搴忓垪鍖栨柟寮廕ackson2JsonRedisSerializer
+ */
@Bean
public RedisCacheConfiguration redisCacheConfiguration() {
RedisCacheConfiguration configuration = RedisCacheConfiguration.defaultCacheConfig();
-
- configuration = configuration.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())).entryTtl(Duration.ofSeconds(30));
-
+ configuration = configuration.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new JdkSerializationRedisSerializer())).entryTtl(Duration.ofSeconds(30));
return configuration;
+
+
}
+
+
}
--
Gitblit v1.8.0