未进化的程序猿
人生最苦痛的是梦醒了无路可走。做梦的人是幸福的;倘没有看出可走的路,最要紧的是不要去惊醒他。鲁迅

1、基于连接池获取连接 

1)、JedisPool:Jedis提供的连接池技术

2)、poolConfig:连接池配置对象

3)、host:redis服务地址

4)、port:redis服务端口号 

public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port) { 
    this(poolConfig, host, port, 2000, (String)null, 0, (String)null); 
}

2、封装连接参数 

1)、 jedis.properties 属性配置文件

jedis.host=localhost 
jedis.port=6379 
jedis.maxTotal=30 
jedis.maxIdle=10 

3、加载配置信息 

1)、静态代码块初始化资源 

static{ 
    //读取配置文件
    //获得参数值
    ResourceBundle rb = ResourceBundle.getBundle("jedis"); 
    host = rb.getString("jedis.host"); 
    port = Integer.parseInt(rb.getString("jedis.port")); 
    maxTotal = Integer.parseInt(rb.getString("jedis.maxTotal")); 
    maxIdle = Integer.parseInt(rb.getString("jedis.maxIdle")); 
    poolConfig = new JedisPoolConfig(); 
    poolConfig.setMaxTotal(maxTotal); 
    poolConfig.setMaxIdle(maxIdle); 
    jedisPool = new JedisPool(poolConfig,host,port); 
}

4、获取连接 

 1)、对外访问接口,提供jedis连接对象,连接从连接池获取 

public static Jedis getJedis(){ 
    Jedis jedis = jedisPool.getResource(); 
    return jedis; 
}

5、Jedis封装后的工具类

package com.gmw.utils;

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

import java.util.ResourceBundle;

public class JedisUtils {
    private static JedisPool jedisPool = null;
    private static String host;
    private static Integer port;
    private static Integer maxTotal;
    private static Integer maxIdle;

    static {
        //加载核心属性配置文件
        ResourceBundle resourceBundle = ResourceBundle.getBundle("redis");
        host = resourceBundle.getString("redis.host");
        port = Integer.parseInt(resourceBundle.getString("redis.port"));
        maxTotal = Integer.parseInt(resourceBundle.getString("redis.maxTotal"));
        maxIdle = Integer.parseInt(resourceBundle.getString("redis.maxIdle"));
        //redis数据库连接池配置
        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
        //最大连接数
        jedisPoolConfig.setMaxTotal(maxTotal);
        //最大活动数
        jedisPoolConfig.setMaxIdle(maxTotal);
        //连接服务的url
        //连接服务的端口
        //redis数据库连接池
        jedisPool = new JedisPool(jedisPoolConfig,host,port);
    }

    public static Jedis getJedis(){
        //返回连接池
        return jedisPool.getResource();
    }

}

 

posted on 2020-12-14 01:57  甘茂旺  阅读(93)  评论(0编辑  收藏  举报