All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dxy.library.cache.redis.executor.AbstractExecutor Maven / Gradle / Ivy

Go to download

Redis缓存库,支持single/sentinel/sharded/cluster四种集群方式,支持布隆过滤器,支持分布式锁

The newest version!
package com.dxy.library.cache.redis.executor;

import com.dxy.library.cache.redis.exception.RedisCacheException;
import com.dxy.library.cache.redis.inter.ICommands;
import com.dxy.library.cache.redis.inter.IExecutor;
import com.dxy.library.cache.redis.properties.RedisProperties;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.Response;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;

/**
 * @author duanxinyuan
 * 2019/4/16 21:58
 */
public abstract class AbstractExecutor implements IExecutor, ICommands {

    private RedisProperties redisProperties;

    public AbstractExecutor(RedisProperties redisProperties) {
        this.redisProperties = redisProperties;
        init(redisProperties);
    }

    public RedisProperties getRedisProperties() {
        return redisProperties;
    }

    public void setRedisProperties(RedisProperties redisProperties) {
        this.redisProperties = redisProperties;
        init(redisProperties);
    }

    public abstract void init(RedisProperties redisProperties);

    public JedisPoolConfig initJedisPoolConfig(RedisProperties redisProperties) {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(redisProperties.getMaxTotal());
        config.setMaxIdle(redisProperties.getMaxIdle());
        config.setMaxWaitMillis(redisProperties.getMaxWaitMillis());
        config.setTestOnBorrow(true);
        config.setTestWhileIdle(true);
        return config;
    }

    public  List transformResponse(Map> map) {
        List result = new ArrayList<>(map.size());
        map.forEach((key, response) -> result.add(response.get()));
        return result;
    }

    public void checkNotNull(Object object, Object... objects) {
        checkNotNull(object);
        for (Object o : objects) {
            checkNotNull(o);
        }
    }

    private void checkNotNull(Object object) {
        Objects.requireNonNull(object);
        if (object instanceof Map) {
            if (((Map) object).isEmpty()) {
                throw new RedisCacheException("the params map cannot be null");
            }
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy