`
grandboy
  • 浏览: 124871 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JedisUtil

阅读更多
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;

import org.apache.log4j.Logger;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public final class JedisUtil {
    private static final Logger LOGGER = Logger.getLogger(JedisUtil.class);
    private static final String FILE_NAME = "redis.properties";
    private static int DEFAULT_DB_INDEX = 0;

    private static JedisPool jedisPool = null;

    private JedisUtil() {
        // private constructor
    }

    private static void initialPool() {
        final Properties configurations = new Properties();
        String filePath;
        String address = "";
        int port = 6379;

        try {
            filePath = JedisUtil.class.getResource("/").getPath() + "/" + FILE_NAME;
            File file = new File(filePath);

            configurations.load(new FileInputStream(file));
            address = configurations.getProperty("address");
            port = Integer.valueOf(configurations.getProperty("port"));

            String strDbIndex = configurations.getProperty("db_index");
            if (strDbIndex != null) {
                DEFAULT_DB_INDEX = Integer.valueOf(strDbIndex);
            }
            LOGGER.info("Redis server info: " + address + ":" + port);

            final JedisPoolConfig config = new JedisPoolConfig();
            String strMaxActive = configurations.getProperty("pool_maxactive");
            if (strMaxActive != null) {
                config.setMaxActive(Integer.valueOf(strMaxActive));
            }
            String strMaxIdle = configurations.getProperty("pool_maxidle");
            if (strMaxIdle != null) {
                config.setMaxIdle(Integer.valueOf(strMaxIdle));
            }
            String strMaxWait = configurations.getProperty("pool_maxwait");
            if (strMaxWait != null) {
                config.setMaxWait(Integer.valueOf(strMaxWait));
            }
            config.setTestOnBorrow(false);

            String strTimeout = configurations.getProperty("pool_connection_timeout");

            int timeout = 2000;
            if (strTimeout != null) {
                timeout = Integer.valueOf(strTimeout);
            }
            jedisPool = new JedisPool(config, address, port, timeout);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {

        }

    }

    public synchronized static Jedis getJedisInstance() {
        if (jedisPool == null) {
            initialPool();
        }
        try {
            if (jedisPool != null) {
                Jedis resource = jedisPool.getResource();
                resource.select(DEFAULT_DB_INDEX);
                return resource;
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public synchronized static Jedis getJedisInstance(final int dbIndex) {
        if (jedisPool == null) {
            initialPool();
        }
        try {
            if (jedisPool != null) {
                Jedis resource = jedisPool.getResource();
                resource.select(dbIndex);
                return resource;
            } else {
                return null;
            }
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    public static void returnResource(final Jedis jedis) {
        if (jedis != null) {
            jedisPool.returnResource(jedis);
        }
    }

}
分享到:
评论

相关推荐

    JedisUtil,java操作redis的工具类

    JedisUtil,java操作redis的工具类,里面实现了常用的操作redis的方法。很实用的工具类。

    JedisUtil工具类.java

    JedisUtil工具类

    Redis的java工具类,Jedisutil

    `JedisUtil`是一个常见的Java工具类,它封装了Jedis的基本操作,使得开发者能够更加便捷地使用Redis服务。 `JedisPool`是Jedis库提供的一个连接池组件,它允许我们管理多个Jedis实例,有效地重用Redis连接,避免...

    jedisUtil工具类java

    jedis的工具类,java代码写的,非常全面,jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类...

    JedisUtil.java

    JedisUtil连接池工具类

    Jedis-Util

    public class JedisUtil { private static JedisPool pool; static { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(100); // 最大连接数 config.setMaxIdle(50); // 最大空闲连接 ...

    Redis实现高并发计数器

    `JedisUtil.setIncr`方法内部首先从连接池获取一个`Jedis`实例,然后执行`INCR`命令,接着根据传入的`cacheSeconds`参数设置键的过期时间(86400秒即1天),最后返回自增后的结果。如果调用次数不超过限制(例如10次...

    debug_redis.zip

    本文将深入探讨如何使用Java与Redis进行交互,重点解析`JedisPoolUtil.java`和`JedisUtil.java`这两个文件中的关键概念和代码实现。 首先,我们来看`Jedis`是Redis官方提供的Java客户端,它提供了丰富的API来操作...

    Redis 、Redis 连接池、JedisPool

    1.全网最强最好用redis 封装连接池,redis 配置详解 2.jar 内置最全 最安全的两种redis 连接池 创建方式...5.调用类 JedisUtil_Synchronized 或者JedisUtil_ReentrantLock 6.在公司写了一天 ,希望能帮到大家

    Redis 连接池(升级)

    说明:全网最强最全的RedisPool整合,内置两种模式的超强安全连接(JedisUtil_Synchronized 和 JedisUtil_ReentrantLock ),经过公司生产环境的检验,采用RedisPool.jar + redis.properties 组合,用户可快速、安全...

    jedis工具类

    public class JedisUtil { private static JedisPool pool; static { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(100); config.setMaxIdle(50); config.setMinIdle(20); config....

    java redis使用之利用jedis实现redis消息队列.docx

    通过序列化工具类 `ObjectUtil` 和 Redis 工具类 `JedisUtil`,我们不仅能够高效地管理 Redis 连接,还能方便地在 Redis 中存储和检索复杂的数据结构。对于需要处理大量异步消息的应用程序而言,这是一个非常实用的...

    springboot--jredis集成使用.zip

    首先,`JedisUtil.java`是Jedis的工具类,它封装了对Redis的基本操作,例如连接、设置键值、获取键值等。这个类通常会包含静态方法,以便在应用的任何地方都能够方便地调用Redis服务。例如,可能会有`getJedis()`...

    RateLimit.rar

    `JedisUtil.java`文件很可能是包含与Redis交互的工具类,封装了连接Redis、执行命令等操作。Jedis是Java语言中常用的Redis客户端库,提供了丰富的API用于操作Redis。在这个限流实现中,它可能包含了一些关键函数,如...

    java 二次封装jedis,无需配置,开箱即用。easyJedis-1.0.1.jar

    对于jedis的二次封装,所有方法都从简调用,jar包引入到项目,默认构造器会扫描配置文件,读取redis参数,也可以通过构造器自定义参数,所有的异常处理,类型转换和锁控制都处理好了,还有对于map,bean对象,数组的...

    travel.zip

    │ │ │ JedisUtil.java │ │ │ MailUtils.java │ │ │ Md5Util.java │ │ │ UuidUtil.java │ │ │ │ │ └─web │ │ ├─filter │ │ └─servlet │ │ CheckCodeServlet.java │ │ │...

    java 程序使用redis + windows服务端

    java 程序使用redis + windows服务端 1.点击 /redis服务端/hcredis.bat 启动服务端 2.把jar导入到项目里面 3.把配置文件 redis.properties 导入 src下 4.JedisUtil.java 里面提供了缓存的添加 删除

    word源码java-javaUtils-:java常用的工具类,附带Springboot配置属性目录

    JedisUtil(redis连接操作实现) encrypt RsaUtils(rsa加密Java实现) http http.async HttpAsyncClient(httpasyncclient4.1.3封装) http.factory HttpClientFactory(同步异步httpclient连接池工厂) http.sync ...

    java实现二维码扫码授权登陆

    JedisUtil.set(loginCode, loginCode, expirationTime); Map, Object> map = new HashMap(); map.put("loginCode", loginCode); map.put("expirationTime", expirationTime); apiData(request, response, Req...

Global site tag (gtag.js) - Google Analytics