一、jedis池的介绍

相信大家都用过线程池或者是jdbc的连接池,使用池可以减少系统在使用所需对象时创建对象的开销,从而提高系统性能和效率。jedis池也是如此,那么我们该如何使用jedis池呢?

二、jedis池的使用

1.所需jar包:

commons-pool.jar、jedis-2.1.0.jar
2.编写Redis配置文件(redis.properties):

本例中代码如下:

#*****************jedis连接参数设置*********************#

#redis服务器ip #

redis.ip=192.168.8.167

#redis服务器端口号#

redis.port=6379

#************************jedis池参数设置*******************#

#jedis的最大分配对象#

jedis.pool.maxActive=3000

#jedis最大保存idel状态对象数 #

jedis.pool.maxIdle=1000

#jedis池没有对象返回时,最大等待时间 #

jedis.pool.maxWait=1500

#jedis调用borrowObject方法时,是否进行有效检查#

jedis.pool.testOnBorrow=true

#jedis调用returnObject方法时,是否进行有效检查 #

jedis.pool.testOnReturn=true

3.编写Java实现代码:

package com.zhongying.customer.utils;

import java.io.IOException;

import java.util.Properties;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

public class MyJedisPool {

private static JedisPool pool;

//静态代码初始化池配置

static {

try{

Properties props = new Properties();

props.load(MyJedisPool.class.getClassLoader().getResourceAsStream("redis.properties"));

//创建jedis池配置实例

JedisPoolConfig config = new JedisPoolConfig();

//设置池配置项值

config.setMaxActive(Integer.valueOf(props.getProperty("jedis.pool.maxActive")));

config.setMaxIdle(Integer.valueOf(props.getProperty("jedis.pool.maxIdle")));

config.setMaxWait(Long.valueOf(props.getProperty("jedis.pool.maxWait")));

config.setTestOnBorrow(Boolean.valueOf(props.getProperty("jedis.pool.testOnBorrow")));

config.setTestOnReturn(Boolean.valueOf(props.getProperty("jedis.pool.testOnReturn")));

//根据配置实例化jedis池

pool = new JedisPool(config, props.getProperty("redis.ip"), Integer.valueOf(props.getProperty("redis.port")));

}catch (IOException e) {

e.printStackTrace();

}

}

/**获得jedis对象*/

public static Jedis getJedisObject(){

return pool.getResource();

}

/**归还jedis对象*/

public static void recycleJedisOjbect(Jedis jedis){

pool.returnResource(jedis);

}

/**

* 测试jedis池方法

*/

public static void main(String[] args) {

Jedis jedis = getJedisObject();//获得jedis实例

//获取jedis实例后可以对redis服务进行一系列的操作

jedis.set("name", "zhuxun");

System.out.println(jedis.get("name"));

jedis.del("name");

System.out.println(jedis.exists("name"));

recycleJedisOjbect(jedis); //将 获取的jedis实例对象还回迟中

}

}

jedis池的作用的更多相关文章

  1. 浅谈线程池(中):独立线程池的作用及IO线程池

    原文地址:http://blog.zhaojie.me/2009/07/thread-pool-2-dedicate-pool-and-io-pool.html 在上一篇文章中,我们简单讨论了线程池的 ...

  2. 浅谈线程池(上):线程池的作用及CLR线程池

    原文地址:http://blog.zhaojie.me/2009/07/thread-pool-1-the-goal-and-the-clr-thread-pool.html 线程池是一个重要的概念. ...

  3. ThreadPool 线程池的作用

    相关概念: 线程池可以看做容纳线程的容器: 一个应用程序最多只能有一个线程池: ThreadPool静态类通过QueueUserWorkItem()方法将工作函数排入线程池: 每排入一个工作函数,就相 ...

  4. 创建JDBC模板简化代码、JDBC应用的事务管理以及连接池的作用

    一.创建JDBC模板简化代码 一个简单的查询.要做这么一大堆事情,并且还要处理异常,我们不防来梳理一下: 1.获取connection  2.获取statement  3.获取resultset  4 ...

  5. c3p0数据库连接池(作用不重复)

    /* * c3p0数据库连接池: * 只被初始化一次 * connection对象进行close时,不是正的关闭,而是将该数据连接归还给数据库连接池 * * */ 四个架包 mysql-connect ...

  6. String对象池的作用

    我们知道得到String对象有两种办法:String str1="hello";String str2=new String("hello");     这两种 ...

  7. 【Java】线程池的作用

    在程序启动的时候就创建若干线程来响应处理,它们被称为线程池,里面的线程叫工作线程  第一:降低资源消耗.通过重复利用已创建的线程降低线程创建和销毁造成的消耗.  第二:提高响应速度.当任务到达时,任务 ...

  8. 详解线程池的作用及Java中如何使用线程池

    服务端应用程序(如数据库和 Web 服务器)需要处理来自客户端的高并发.耗时较短的请求任务,所以频繁的创建处理这些请求的所需要的线程就是一个非常消耗资源的操作.常规的方法是针对一个新的请求创建一个新线 ...

  9. jedis连接池详解(Redis)

    转自:http://tianxingzhe.blog.51cto.com/3390077/1684306 原子性(atomicity): 一个事务是一个不可分割的最小工作单位,事务中包括的诸操作要么都 ...

随机推荐

  1. List tuple 类型转成数组

    SKlearning大部分的输入数据都是M * N数组. 然而我们从数据库或文件读取得来的通常是Python内定的类型tuple或list 它们的优势就不说了,但是直接把list或tuple构成的二维 ...

  2. Shell十三问[转]

    Shell十三问 转载于网络,稍加整理. (一) 为何叫做Shell? 我们知道计算机的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operati ...

  3. x01.Weiqi.9: 点目功能

    添加点目功能,虽不中,不远也.还是先看看截图吧. 确保其可行,再看一张: 其点目结果,还是比较令人满意的.这主要得益于多遍扫描,如编译器的词法分析阶段,下面的代码可以证明: private void ...

  4. Json解析工具Jackson(简单应用)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...

  5. MMORPG大型游戏设计与开发(服务器 游戏场景 多线程)

    多线程在随着cpu发展应用的是越来越多,游戏场景因为其在服务器所占的数据量与逻辑复杂度的原因必须依赖于它.为什么场景要采用多线程?场景的线程是怎样的?场景的线程又是如何创建的?场景的线程又是怎样管理的 ...

  6. 【2016-10-28】【坚持学习】【Day15】【Oracle】【变量 定义 使用】

    declare i integer ; j ; begin i :; dbms_output.put_line(j); end

  7. using 释放资源

    我们知道使用C#程序访问数据库资源需要几个步骤:创建连接,打开连接,访问数据库,关闭连接,基本架构如下: SqlConnection conn = new SqlConnection(connStri ...

  8. 洛谷P1196 银河英雄传说[带权并查集]

    题目描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦 创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山 ...

  9. 洛谷P1330封锁阳光大学[二分图染色]

    题目描述 曹是一只爱刷街的老曹,暑假期间,他每天都欢快地在阳光大学的校园里刷街.河蟹看到欢快的曹,感到不爽.河蟹决定封锁阳光大学,不让曹刷街. 阳光大学的校园是一张由N个点构成的无向图,N个点之间由M ...

  10. POJ2794 Double Patience[离散概率 状压DP]

    Double Patience Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 694   Accepted: 368 Cas ...