From cebb4511b4f7102570b0151d48779670b32cad62 Mon Sep 17 00:00:00 2001 From: zhaowenxuan <chacca165@163.com> Date: 星期五, 11 十月 2024 08:38:31 +0800 Subject: [PATCH] 2024-10-11 --- ltkj-framework/src/main/java/com/ltkj/framework/config/RedisConfig.java | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 85 insertions(+), 0 deletions(-) diff --git a/ltkj-framework/src/main/java/com/ltkj/framework/config/RedisConfig.java b/ltkj-framework/src/main/java/com/ltkj/framework/config/RedisConfig.java index 42ca229..f83f875 100644 --- a/ltkj-framework/src/main/java/com/ltkj/framework/config/RedisConfig.java +++ b/ltkj-framework/src/main/java/com/ltkj/framework/config/RedisConfig.java @@ -1,13 +1,20 @@ package com.ltkj.framework.config; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import org.springframework.cache.annotation.CachingConfigurerSupport; import org.springframework.cache.annotation.EnableCaching; 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.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.data.redis.serializer.StringRedisSerializer; +import redis.clients.jedis.JedisPoolConfig; + +import java.io.*; +import java.util.Properties; /** * redis閰嶇疆 @@ -16,7 +23,15 @@ */ @Configuration @EnableCaching +@Slf4j public class RedisConfig extends CachingConfigurerSupport { + + @Value ("${config.properties}") + private String url; + + @Value ("${config.path}") + private String path; + @Bean @SuppressWarnings(value = {"unchecked", "rawtypes"}) public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) { @@ -38,6 +53,76 @@ } @Bean + public JedisPoolConfig jedisPoolConfig() { + JedisPoolConfig config = new JedisPoolConfig(); + // 璁剧疆JedisPoolConfig鐨勭浉鍏冲弬鏁帮紝渚嬪鏈�澶ц繛鎺ユ暟銆佹渶澶х┖闂叉椂闂寸瓑 +// config.setMinIdle(0); +// config.setMaxIdle(8); +// config.setMaxTotal(8); +// config.setMaxWaitMillis(-1); +// config.setTestOnBorrow(true); +// config.setTestOnReturn(true); + return config; + } + @Bean + public RedisConnectionFactory redisConnectionFactory(JedisPoolConfig jedisPoolConfig) { + JedisConnectionFactory factory = new JedisConnectionFactory(); + // 浠庢枃浠朵腑璇诲彇閰嶇疆淇℃伅 + try { + FileInputStream fis = null; + Properties props = new Properties(); + try { + fis = new FileInputStream(url); + } catch (FileNotFoundException e) { + log.info("閰嶇疆鏂囦欢鎵句笉鍒� 绯荤粺姝e湪鍒涘缓锛�"); + File f = new File(path); + if(!f.exists()){ + f.mkdirs(); + } + File file = new File(url); + try { + FileWriter fileWriter = new FileWriter(file); + fileWriter.write("ip = 浣犵殑涓绘暟鎹簱杩炴帴ip鍦板潃\n"); + fileWriter.write("prot = 浣犵殑涓绘暟鎹簱杩炴帴绔彛\n"); + fileWriter.write("name = 浣犵殑涓绘暟鎹簱杩炴帴鍚嶇О\n"); + fileWriter.write("username = 浣犵殑涓绘暟鎹簱杩炴帴鐢ㄦ埛鍚峔n"); + fileWriter.write("password = 浣犵殑涓绘暟鎹簱杩炴帴瀵嗙爜\n"); + fileWriter.write("redisIp = 浣犵殑redisIp鍦板潃"); + fileWriter.write("redisProt = 浣犵殑redis绔彛"); + fileWriter.write("redisIpDatabase = 浣犵殑redis閾炬帴搴�"); + fileWriter.write("redisPassword = 浣犵殑redis瀵嗙爜"); + fileWriter.write(""); + fileWriter.close(); + log.info("閰嶇疆鏂囦欢鍒涘缓鎴愬姛锛�"); + } catch (IOException ioException) { + log.info("閰嶇疆鏂囦欢鍒涘缓澶辫触 璇疯仈绯荤鐞嗗憳鎵嬪姩鍒涘缓锛�"); + ioException.printStackTrace(); + } + e.printStackTrace(); + } + props.load(fis); + fis.close(); + // 鑾峰彇灞炴�у�煎苟璧嬪�� + factory.setPoolConfig(jedisPoolConfig); + // 璁剧疆Redis鏈嶅姟鍣ㄧ殑鍦板潃鍜岀鍙e彿 + factory.setHostName(props.getProperty("redisIp")); + factory.setPort(Integer.parseInt(props.getProperty("redisProt"))); + // 濡傛灉闇�瑕佸瘑鐮侀獙璇侊紝璁剧疆瀵嗙爜 + factory.setPassword(props.getProperty("redisPassword")); + // 璁剧疆鍏朵粬鍙傛暟锛屽鏁版嵁搴撶储寮曠瓑 + factory.setDatabase(Integer.parseInt(props.getProperty("redisIpDatabase"))); + // 鏈�鍚庯紝鍒濆鍖栬繛鎺� + factory.afterPropertiesSet(); + log.info("redis杩炴帴鎴愬姛!!!"); + } catch (IOException e) { + log.info("redis杩炴帴澶辫触 璇疯仈绯荤鐞嗗憳锛�"); + e.printStackTrace(); + } + return factory; + } + + + @Bean public DefaultRedisScript<Long> limitScript() { DefaultRedisScript<Long> redisScript = new DefaultRedisScript<>(); redisScript.setScriptText(limitScriptText()); -- Gitblit v1.8.0