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

cn.jiangzeyin.redis.RedisTemplateFactory Maven / Gradle / Ivy

package cn.jiangzeyin.redis;

import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;

import java.util.concurrent.ConcurrentHashMap;

/**
 * Created by jiangzeyin on 2017/12/12.
 */
public class RedisTemplateFactory {
    private static final ConcurrentHashMap REDIS_TEMPLATE_CONCURRENT_HASH_MAP = new ConcurrentHashMap<>();

    public static StringRedisTemplate getStringRedisTemplate(int database) {
        String key = "string_" + database;
        RedisTemplate template = REDIS_TEMPLATE_CONCURRENT_HASH_MAP.get(key);
        if (template != null && template instanceof StringRedisTemplate)
            return (StringRedisTemplate) template;
        template = new StringRedisTemplate();
        RedisConnectionFactory connectionFactory = RedisConnectionFactoryPool.getRedisConnectionFactory(database);
        template.setConnectionFactory(connectionFactory);
        template.afterPropertiesSet();
        REDIS_TEMPLATE_CONCURRENT_HASH_MAP.put(key, template);
        return (StringRedisTemplate) template;
    }

    public static StringRedisTemplate getStringRedisTemplate() {
        return getStringRedisTemplate(RedisConnectionFactoryPool.getDefaultDatabase());
    }

    public static  RedisTemplate getRedisTemplate(int database) {
        String key = "key_value_" + database;
        RedisTemplate template = REDIS_TEMPLATE_CONCURRENT_HASH_MAP.get(key);
        if (template != null && template instanceof StringRedisTemplate)
            return template;
        template = new RedisTemplate<>();
        RedisConnectionFactory connectionFactory = RedisConnectionFactoryPool.getRedisConnectionFactory(database);
        template.setConnectionFactory(connectionFactory);
        template.afterPropertiesSet();
        REDIS_TEMPLATE_CONCURRENT_HASH_MAP.put(key, template);
        return template;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy