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的工具类,里面实现了常用的操作redis的方法。很实用的工具类。
JedisUtil工具类
`JedisUtil`是一个常见的Java工具类,它封装了Jedis的基本操作,使得开发者能够更加便捷地使用Redis服务。 `JedisPool`是Jedis库提供的一个连接池组件,它允许我们管理多个Jedis实例,有效地重用Redis连接,避免...
jedis的工具类,java代码写的,非常全面,jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类,java代码写的,非常全面jedis的工具类...
JedisUtil连接池工具类
public class JedisUtil { private static JedisPool pool; static { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(100); // 最大连接数 config.setMaxIdle(50); // 最大空闲连接 ...
`JedisUtil.setIncr`方法内部首先从连接池获取一个`Jedis`实例,然后执行`INCR`命令,接着根据传入的`cacheSeconds`参数设置键的过期时间(86400秒即1天),最后返回自增后的结果。如果调用次数不超过限制(例如10次...
本文将深入探讨如何使用Java与Redis进行交互,重点解析`JedisPoolUtil.java`和`JedisUtil.java`这两个文件中的关键概念和代码实现。 首先,我们来看`Jedis`是Redis官方提供的Java客户端,它提供了丰富的API来操作...
1.全网最强最好用redis 封装连接池,redis 配置详解 2.jar 内置最全 最安全的两种redis 连接池 创建方式...5.调用类 JedisUtil_Synchronized 或者JedisUtil_ReentrantLock 6.在公司写了一天 ,希望能帮到大家
说明:全网最强最全的RedisPool整合,内置两种模式的超强安全连接(JedisUtil_Synchronized 和 JedisUtil_ReentrantLock ),经过公司生产环境的检验,采用RedisPool.jar + redis.properties 组合,用户可快速、安全...
public class JedisUtil { private static JedisPool pool; static { JedisPoolConfig config = new JedisPoolConfig(); config.setMaxTotal(100); config.setMaxIdle(50); config.setMinIdle(20); config....
通过序列化工具类 `ObjectUtil` 和 Redis 工具类 `JedisUtil`,我们不仅能够高效地管理 Redis 连接,还能方便地在 Redis 中存储和检索复杂的数据结构。对于需要处理大量异步消息的应用程序而言,这是一个非常实用的...
首先,`JedisUtil.java`是Jedis的工具类,它封装了对Redis的基本操作,例如连接、设置键值、获取键值等。这个类通常会包含静态方法,以便在应用的任何地方都能够方便地调用Redis服务。例如,可能会有`getJedis()`...
`JedisUtil.java`文件很可能是包含与Redis交互的工具类,封装了连接Redis、执行命令等操作。Jedis是Java语言中常用的Redis客户端库,提供了丰富的API用于操作Redis。在这个限流实现中,它可能包含了一些关键函数,如...
对于jedis的二次封装,所有方法都从简调用,jar包引入到项目,默认构造器会扫描配置文件,读取redis参数,也可以通过构造器自定义参数,所有的异常处理,类型转换和锁控制都处理好了,还有对于map,bean对象,数组的...
│ │ │ JedisUtil.java │ │ │ MailUtils.java │ │ │ Md5Util.java │ │ │ UuidUtil.java │ │ │ │ │ └─web │ │ ├─filter │ │ └─servlet │ │ CheckCodeServlet.java │ │ │...
java 程序使用redis + windows服务端 1.点击 /redis服务端/hcredis.bat 启动服务端 2.把jar导入到项目里面 3.把配置文件 redis.properties 导入 src下 4.JedisUtil.java 里面提供了缓存的添加 删除
JedisUtil(redis连接操作实现) encrypt RsaUtils(rsa加密Java实现) http http.async HttpAsyncClient(httpasyncclient4.1.3封装) http.factory HttpClientFactory(同步异步httpclient连接池工厂) http.sync ...
JedisUtil.set(loginCode, loginCode, expirationTime); Map, Object> map = new HashMap(); map.put("loginCode", loginCode); map.put("expirationTime", expirationTime); apiData(request, response, Req...