Redis的一个简单连接池
2017-03-20 10:02
513 查看
做Storm大数据开发,经常要用到redis来缓存一些东西,所以就写了个redis的连接池,jar包用的是2.8.0版本的,
经过一两个项目的检验,发现这个连接池在使用时还是挺不错的,代码如下:、
public enum RedisSingle {
INSTANCE;
private JedisPool jedisPool;
private RedisSingle() {
InputStream propInputStream = RedisSingle.class.getClassLoader().getResourceAsStream("config.properties");
Properties properties = new Properties();
try {
properties.load(propInputStream);
} catch (IOException e) {
System.err.println(e.getMessage());
}
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.get("JedisMaxActive").toString())); //100
jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.get("JedisMaxIdle").toString())); //10
jedisPoolConfig.setMaxWaitMillis(Long.parseLong(properties.get("JedisMaxWait").toString())); //5000
jedisPoolConfig.setTestOnBorrow(Boolean.parseBoolean(properties.get("JedisTestOnBorrow").toString())); //false
jedisPool = new JedisPool(jedisPoolConfig, properties.get("JedisURL").toString(), Integer.parseInt(properties.get("JedisPort").toString()));
//redis服务器IP,端口6379
}
public Jedis getInstance() {
return jedisPool.getResource();
}
public void closeInstance(Jedis jedis) {
jedis.close();
}
public static void main(String[] args) {
Jedis jedis = null;
try {
jedis = RedisSingle.INSTANCE.getInstance();
System.out.println(jedis);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != jedis) {
RedisSingle.INSTANCE.closeInstance(jedis);
}
}
}
}
经过一两个项目的检验,发现这个连接池在使用时还是挺不错的,代码如下:、
public enum RedisSingle {
INSTANCE;
private JedisPool jedisPool;
private RedisSingle() {
InputStream propInputStream = RedisSingle.class.getClassLoader().getResourceAsStream("config.properties");
Properties properties = new Properties();
try {
properties.load(propInputStream);
} catch (IOException e) {
System.err.println(e.getMessage());
}
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.get("JedisMaxActive").toString())); //100
jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.get("JedisMaxIdle").toString())); //10
jedisPoolConfig.setMaxWaitMillis(Long.parseLong(properties.get("JedisMaxWait").toString())); //5000
jedisPoolConfig.setTestOnBorrow(Boolean.parseBoolean(properties.get("JedisTestOnBorrow").toString())); //false
jedisPool = new JedisPool(jedisPoolConfig, properties.get("JedisURL").toString(), Integer.parseInt(properties.get("JedisPort").toString()));
//redis服务器IP,端口6379
}
public Jedis getInstance() {
return jedisPool.getResource();
}
public void closeInstance(Jedis jedis) {
jedis.close();
}
public static void main(String[] args) {
Jedis jedis = null;
try {
jedis = RedisSingle.INSTANCE.getInstance();
System.out.println(jedis);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != jedis) {
RedisSingle.INSTANCE.closeInstance(jedis);
}
}
}
}
相关文章推荐
- 自己设计一个简单的的Java连接池(二)
- 用redis 做一个简单的 pub / sub 系统
- 闲着没事写的一个简单的连接池
- 用redis来实现Session保存的一个简单Demo
- 写了一个简单的hbase连接池
- 用redis做一个简单的秒杀
- 一个简单的数据库连接池(连接个数,连接时间限制)
- 演示一个简单的Redis队列
- 以一个简单的数据库表为例来展示创建全局/局部数据源和连接池的配置与测试
- 写了一个简单的数据库连接池
- 自定义一个简单的连接池
- Redis客户端连接方式Hiredis简单封装使用,连接池、屏蔽连接细节
- 一个简单的Redis应用(修订版)
- 一个简单的redis性能测试程序和性能测试结果
- redis java客户端Jedis 实现 连接池 + 简单的负载均衡
- 自己设计一个简单的的Java连接池(一)
- PhpMyAdmin的简单安装和一个mysql到Redis迁移的简单例子
- 一个简单的Redis结合Spring MVC架构以及实现过程
- 使用redis写一个简单的分布式锁
- 一个简单的log4j2的redis appender ,依赖于Jedis (A simple log4j2 redis appender which uses Jedis)