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

com.daedafusion.cache.providers.RedisCacheManager Maven / Gradle / Ivy

The newest version!
package com.daedafusion.cache.providers;

import com.daedafusion.cache.Cache;
import com.daedafusion.configuration.Configuration;
import com.daedafusion.sf.AbstractProvider;
import com.daedafusion.sf.LifecycleListener;
import org.apache.log4j.Logger;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by mphilpot on 1/23/17.
 */
public class RedisCacheManager extends AbstractProvider implements CacheManagerProvider
{
    private static final Logger log = Logger.getLogger(RedisCacheManager.class);

    private final Map map;
    private JedisPool pool;

    public RedisCacheManager()
    {
        map = new HashMap<>();

        addLifecycleListener(new LifecycleListener()
        {
            @Override
            public void init()
            {

            }

            @Override
            public void start()
            {
                pool = new JedisPool(new JedisPoolConfig(), Configuration.getInstance().getString("redis.hostname", "localhost"));
            }

            @Override
            public void stop()
            {

            }

            @Override
            public void teardown()
            {
                pool.destroy();
            }
        });
    }

    @Override
    public Cache getCache(String name)
    {
        return new RedisCache(pool, name);
    }

    @Override
    public boolean hasCache(String name)
    {
        return map.containsKey(name) || getProperty(name) != null;
    }

    @Override
    public boolean isDefaultProvider()
    {
        return Boolean.parseBoolean(getProperty("defaultProvider", "false"));
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy