java110
2023-05-09 9d72ec6a4e68a2af10cf3a4edef305fbd8a5b848
optimize
2个文件已修改
1个文件已添加
145 ■■■■■ 已修改文件
java110-core/src/main/java/com/java110/core/cache/Java110RedisConfig.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java 137 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-utils/src/main/java/com/java110/utils/cache/BaseCache.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
java110-core/src/main/java/com/java110/core/cache/Java110RedisConfig.java
@@ -40,8 +40,8 @@
    @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 @@
        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) {
java110-core/src/main/java/com/java110/core/cache/JedisClientTemplate.java
New file
@@ -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);
    }
}
java110-utils/src/main/java/com/java110/utils/cache/BaseCache.java
@@ -11,7 +11,7 @@
 */
public class BaseCache {
    public final static String JEDIS_DEFAULT_POOL = "jedisClientPool"; // 单节点模式  集群模式 jedisClientCluster
    public final static String JEDIS_DEFAULT_POOL = "jedisClientTemplate"; // 单节点模式 jedisClientPool  集群模式 jedisClientCluster