java110 3 lat temu
rodzic
commit
a9ea3b1239

+ 45 - 15
java110-core/src/main/java/com/java110/core/cache/Java110RedisConfig.java

@@ -15,17 +15,21 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
 import org.springframework.data.redis.serializer.RedisSerializationContext;
 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
-public class Java110RedisConfig extends CachingConfigurerSupport  {
+public class Java110RedisConfig extends CachingConfigurerSupport {
 
     public final static String REDIS_EXPIRE_TIME_KEY = "#key_expire_time";
 
@@ -36,29 +40,56 @@ public class Java110RedisConfig extends CachingConfigurerSupport  {
     @Autowired
     private RedisTemplate redisTemplate;
 
-    @Bean(name= "jedisPool")
+    @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.host}") String host,
+                               @Value("${jedis.pool.port}") int port,
+                               @Value("${jedis.pool.timeout}") int timeout,
                                @Value("${jedis.pool.password}") String password) {
         //没有配置改为默认值
-        if(timeout == 0){
+        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);
+        if (StringUtils.isEmpty(password)) {
+            return new JedisPool(config, host, port, timeout);
+        } else {
+            return new JedisPool(config, host, port, timeout, password);
         }
     }
 
-    @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) {
+    @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;
+        }
+        if (!host.contains(",")) {
+            return null;
+        }
+
+        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);
@@ -69,7 +100,6 @@ public class Java110RedisConfig extends CachingConfigurerSupport  {
     }
 
 
-
     @Override
     @Bean
     public CacheManager cacheManager() {

+ 126 - 0
java110-core/src/main/java/com/java110/core/cache/JedisClientCluster.java

@@ -0,0 +1,126 @@
+package com.java110.core.cache;
+
+import com.java110.utils.cache.Jedis;
+import com.java110.utils.factory.ApplicationContextFactory;
+import org.springframework.stereotype.Component;
+import redis.clients.jedis.JedisCluster;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+@Component
+public class JedisClientCluster implements Jedis {
+    @Override
+    public String set(String key, String value) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.set(key, value);
+    }
+
+    @Override
+    public String set(byte[] key, byte[] value) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.set(key, value);
+    }
+
+    @Override
+    public String set(String key, String value, String nxxx, String expx, int time) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.set(key, value,nxxx,expx,time);
+    }
+
+
+    @Override
+    public String get(String key) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.get(key);
+    }
+
+    @Override
+    public byte[] get(byte[] key) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.get(key);
+    }
+
+    @Override
+    public Boolean exists(String key) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.exists(key);
+    }
+
+    @Override
+    public Long expire(String key, int seconds) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.expire(key, seconds);
+    }
+
+    @Override
+    public Long ttl(String key) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.ttl(key);
+    }
+
+    @Override
+    public Long incr(String key) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.incr(key);
+    }
+
+    @Override
+    public Long hset(String key, String field, String value) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.hset(key, field, value);
+    }
+
+    @Override
+    public String hget(String key, String field) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.hget(key, field);
+    }
+
+    @Override
+    public Long hdel(String key, String... field) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.hdel(key, field);
+    }
+
+    @Override
+    public Long del(String key) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.del(key);
+    }
+
+    @Override
+    public Long del(byte[] key) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.del(key);
+    }
+
+    @Override
+    public void close() {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        try {
+            jedisCluster.close();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    @Override
+    public Set<String> keys(String pattern) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.hkeys(pattern);
+    }
+
+    @Override
+    public Object eval(String script, int keyCount, String... params) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.eval(script,keyCount,params);
+    }
+
+    @Override
+    public Object eval(String script, List<String> keys, List<String> args) {
+        JedisCluster jedisCluster = (JedisCluster) ApplicationContextFactory.getBean("jedisCluster");
+        return jedisCluster.eval(script,keys,args);
+    }
+}

+ 123 - 0
java110-core/src/main/java/com/java110/core/cache/JedisClientPool.java

@@ -0,0 +1,123 @@
+package com.java110.core.cache;
+
+import com.java110.utils.cache.Jedis;
+import com.java110.utils.factory.ApplicationContextFactory;
+import org.springframework.stereotype.Component;
+import redis.clients.jedis.JedisCluster;
+import redis.clients.jedis.JedisPool;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+@Component
+public class JedisClientPool implements Jedis {
+    @Override
+    public String set(String key, String value) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().set(key, value);
+    }
+
+    @Override
+    public String set(byte[] key, byte[] value) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().set(key, value);
+    }
+
+    @Override
+    public String set(String key, String value, String nxxx, String expx, int time) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().set(key, value,nxxx,expx,time);
+    }
+
+
+    @Override
+    public String get(String key) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().get(key);
+    }
+
+    @Override
+    public byte[] get(byte[] key) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().get(key);
+    }
+
+    @Override
+    public Boolean exists(String key) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().exists(key);
+    }
+
+    @Override
+    public Long expire(String key, int seconds) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().expire(key, seconds);
+    }
+
+    @Override
+    public Long ttl(String key) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().ttl(key);
+    }
+
+    @Override
+    public Long incr(String key) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().incr(key);
+    }
+
+    @Override
+    public Long hset(String key, String field, String value) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().hset(key, field, value);
+    }
+
+    @Override
+    public String hget(String key, String field) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().hget(key, field);
+    }
+
+    @Override
+    public Long hdel(String key, String... field) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().hdel(key, field);
+    }
+
+    @Override
+    public Long del(String key) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().del(key);
+    }
+
+    @Override
+    public Long del(byte[] key) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().del(key);
+    }
+
+    @Override
+    public void close() {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        jedisPool.getResource().close();
+    }
+
+    @Override
+    public Set<String> keys(String pattern) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().keys(pattern);
+    }
+
+    @Override
+    public Object eval(String script, int keyCount, String... params) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().eval(script,keyCount,params);
+    }
+
+    @Override
+    public Object eval(String script, List<String> keys, List<String> args) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        return jedisPool.getResource().eval(script,keys,args);
+    }
+}

+ 1 - 1
java110-core/src/main/java/com/java110/core/factory/CommunitySettingFactory.java

@@ -10,7 +10,7 @@ import com.java110.utils.util.StringUtil;
 import org.slf4j.Logger;
 import com.java110.core.log.LoggerFactory;
 import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 import java.util.List;
 

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/AppRouteCache.java

@@ -2,7 +2,7 @@ package com.java110.utils.cache;
 
 import com.java110.utils.util.SerializeUtil;
 import com.java110.entity.center.AppRoute;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 import java.util.List;
 

+ 8 - 4
java110-utils/src/main/java/com/java110/utils/cache/BaseCache.java

@@ -2,8 +2,6 @@ package com.java110.utils.cache;
 
 
 import com.java110.utils.factory.ApplicationContextFactory;
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.JedisPool;
 
 import java.util.Set;
 
@@ -13,9 +11,15 @@ import java.util.Set;
  */
 public class BaseCache {
 
+    public final static String JEDIS_DEFAULT_POOL = "jedisClientPool"; // 单节点模式  集群模式 jedisClientCluster
+
     protected static Jedis getJedis(){
-        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
-        return jedisPool.getResource();
+//        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+//        return jedisPool.getResource();
+        //Jedis jedis = (Jedis) ApplicationContextFactory.getBean("jedisClientCluster");
+        Jedis jedis = (Jedis) ApplicationContextFactory.getBean(JEDIS_DEFAULT_POOL);
+
+        return jedis;
     }
 
     /**

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/BusinessTableHisCache.java

@@ -2,7 +2,7 @@ package com.java110.utils.cache;
 
 import com.java110.dto.businessTableHis.BusinessTableHisDto;
 import com.java110.utils.util.SerializeUtil;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 import java.util.ArrayList;
 import java.util.List;

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/CommonCache.java

@@ -3,7 +3,7 @@ package com.java110.utils.cache;
 import com.java110.utils.util.DateUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 /**
  * Created by wuxw on 2018/5/5.

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/DatabusCache.java

@@ -2,7 +2,7 @@ package com.java110.utils.cache;
 
 import com.java110.dto.businessDatabus.BusinessDatabusDto;
 import com.java110.utils.util.SerializeUtil;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 import java.util.ArrayList;
 import java.util.List;

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/JWTCache.java

@@ -1,6 +1,6 @@
 package com.java110.utils.cache;
 
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 /**
  * Created by wuxw on 2018/5/5.

+ 42 - 0
java110-utils/src/main/java/com/java110/utils/cache/Jedis.java

@@ -0,0 +1,42 @@
+package com.java110.utils.cache;
+
+import java.io.IOException;
+import java.util.List;
+import java.util.Set;
+
+public interface Jedis {
+
+
+
+    String set(String key, String value);
+    String set(byte[] key, byte[] value);
+
+    String set(final String key, final String value, final String nxxx, final String expx,
+                      final int time);
+
+    String get(String key);
+
+    byte[] get(byte[] key);
+
+    Boolean exists(String key);
+    Long expire(String key, int seconds);
+    Long ttl(String key);
+    Long incr(String key);
+    Long hset(String key, String field, String value);
+    String hget(String key, String field);
+    Long hdel(String key, String... field);
+
+     Long del(String key);
+
+    Long del(byte[] key);
+
+
+    void close() ;
+
+    Set<String> keys(final String pattern);
+
+     Object eval(String script, int keyCount, String... params);
+
+    Object eval(String script, List<String> keys, List<String> args);
+
+}

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/MappingCache.java

@@ -6,7 +6,7 @@ import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.SerializeUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 import java.util.List;
 

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/PrivilegeCache.java

@@ -2,7 +2,7 @@ package com.java110.utils.cache;
 
 import com.java110.dto.basePrivilege.BasePrivilegeDto;
 import com.java110.utils.util.SerializeUtil;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 import java.util.List;
 

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/ServiceBusinessCache.java

@@ -2,7 +2,7 @@ package com.java110.utils.cache;
 
 import com.java110.utils.util.SerializeUtil;
 import com.java110.entity.order.ServiceBusiness;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 import java.util.List;
 

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/cache/ServiceSqlCache.java

@@ -2,7 +2,7 @@ package com.java110.utils.cache;
 
 import com.java110.utils.util.SerializeUtil;
 import com.java110.entity.service.ServiceSql;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 /**
  * 缓存

+ 1 - 1
java110-utils/src/main/java/com/java110/utils/lock/DistributedLock.java

@@ -1,7 +1,7 @@
 package com.java110.utils.lock;
 
 import com.java110.utils.cache.BaseCache;
-import redis.clients.jedis.Jedis;
+import com.java110.utils.cache.Jedis;
 
 import java.util.Collections;
 import java.util.UUID;