相信你們都用過線程池或者是jdbc的鏈接池,使用池能夠減小系統在使用所需對象時建立對象的開銷,從而提升系統性能和效率。jedis池也是如此,那麼咱們該如何使用jedis池呢?java
2、jedis池的使用redis
1.所需jar包:服務器
commons-pool.jar、jedis-2.1.0.jar
2.編寫Redis配置文件(redis.properties): ide
3.編寫Java實現代碼:本例中代碼以下:性能
#*****************jedis鏈接參數設置*********************#測試
#redis服務器ip # spa
redis.ip=192.168.8.167線程
#redis服務器端口號# 對象
redis.port=6379blog
#************************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
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實例對象還回遲中
}
}
4.測試執行結果以下:
zhuxun false