java110 hace 2 años
padre
commit
9d72ec6a4e

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

@@ -40,8 +40,8 @@ public class Java110RedisConfig extends CachingConfigurerSupport {
     @Autowired
     private RedisTemplate redisTemplate;
 
-    @Bean(name = "jedisPool")
-    @Autowired
+    //@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,
@@ -82,7 +82,7 @@ public class Java110RedisConfig extends CachingConfigurerSupport {
         return cluster;
     }
 
-    @Bean(name = "jedis.pool.config")
+    //@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) {

+ 137 - 0
java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java

@@ -0,0 +1,137 @@
+package com.java110.core.cache;
+
+import com.java110.utils.cache.Jedis;
+import com.java110.utils.factory.ApplicationContextFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.connection.RedisConnection;
+import org.springframework.data.redis.core.RedisCallback;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.core.script.DefaultRedisScript;
+import org.springframework.stereotype.Component;
+import redis.clients.jedis.JedisPool;
+
+import java.util.List;
+import java.util.Set;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * spring 内置 redis
+ */
+@Component
+public class JedisClientTemplate implements Jedis {
+
+    @Autowired
+    private RedisTemplate redisTemplate;
+
+    @Override
+    public String set(String key, String value) {
+        redisTemplate.opsForValue().set(key, value);
+        return "";
+    }
+
+    @Override
+    public String set(byte[] key, byte[] value) {
+        redisTemplate.opsForValue().set(key, value);
+        return "";
+    }
+
+    @Override
+    public String set(String key, String value, String nxxx, String expx, int time) {
+//        redisTemplate.opsForValue().set(key, value,nxxx,expx,time);
+//        return "";
+        return redisTemplate.execute(new RedisCallback() {
+            public String doInRedis(RedisConnection connection) {
+                Jedis jedis = (Jedis) connection.getNativeConnection();
+                return jedis.set(key, value, nxxx, expx, time);
+            }
+        }, true).toString();
+    }
+
+
+    @Override
+    public String get(String key) {
+        return redisTemplate.opsForValue().get(key).toString();
+    }
+
+    @Override
+    public byte[] get(byte[] key) {
+        return (byte[]) redisTemplate.opsForValue().get(key);
+    }
+
+    @Override
+    public Boolean exists(String key) {
+        return redisTemplate.hasKey(key);
+    }
+
+    @Override
+    public Long expire(String key, int seconds) {
+        redisTemplate.expire(key, seconds, TimeUnit.SECONDS);
+        return redisTemplate.opsForValue().getOperations().getExpire(key);
+    }
+
+    @Override
+    public Long ttl(String key) {
+        return redisTemplate.opsForValue().getOperations().getExpire(key);
+    }
+
+    @Override
+    public Long incr(String key) {
+        return redisTemplate.getConnectionFactory().getConnection().incr(redisTemplate.getKeySerializer().serialize(key));
+    }
+
+    @Override
+    public Long hset(String key, String field, String value) {
+        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+        redis.clients.jedis.Jedis jedis = jedisPool.getResource();
+        try {
+            return jedis.hset(key, field, value);
+        } finally {
+            jedis.close();
+        }
+    }
+
+    @Override
+    public String hget(String key, String field) {
+        redisTemplate.opsForZSet().add(key, field, 1);
+        return "";
+    }
+
+    @Override
+    public Long hdel(String key, String... field) {
+        return redisTemplate.opsForZSet().remove(key, field);
+    }
+
+    @Override
+    public Long del(String key) {
+        redisTemplate.delete(key);
+        return 1L;
+    }
+
+    @Override
+    public Long del(byte[] key) {
+        redisTemplate.delete(key);
+        return 1L;
+    }
+
+    @Override
+    public void close() {
+//        JedisPool jedisPool = (JedisPool) ApplicationContextFactory.getBean("jedisPool");
+//        jedisPool.getResource().close();
+    }
+
+    @Override
+    public Set<String> keys(String pattern) {
+        return redisTemplate.keys(pattern);
+    }
+
+    @Override
+    public Object eval(String script, int keyCount, String... params) {
+        return null;
+    }
+
+    @Override
+    public Object eval(String script, List<String> keys, List<String> args) {
+        DefaultRedisScript redisScript = new DefaultRedisScript(script);
+        return redisTemplate.execute(redisScript, keys, args);
+    }
+}

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

@@ -11,7 +11,7 @@ import java.util.Set;
  */
 public class BaseCache {
 
-    public final static String JEDIS_DEFAULT_POOL = "jedisClientPool"; // 单节点模式  集群模式 jedisClientCluster
+    public final static String JEDIS_DEFAULT_POOL = "jedisClientTemplate"; // 单节点模式 jedisClientPool  集群模式 jedisClientCluster