jedis的连接池

Posted zhai1997

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jedis的连接池相关的知识,希望对你有一定的参考价值。

1、需要先打开虚拟机,并开启Linux系统的端口号:6379:

技术图片

其中,第一行代码为修改字符编码格式,解决SSH中文乱码问题。

 2、开启redis:

技术图片

3、利用连接池实现数据的存取:

(1)代码实现:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisDemo {
    public void test(){
        //对连接池进行配置
        JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
        jedisPoolConfig.setMaxIdle(30);//最大闲置个数
        jedisPoolConfig.setMinIdle(10);//最小闲置个数
        jedisPoolConfig.setMaxTotal(50);//最大连接数
        //创建一个redis连接池
        JedisPool jedisPool=new JedisPool(jedisPoolConfig,"192.168.204.128",6379);
        //从连接池中获取redis的连接资源
        Jedis jedis=jedisPool.getResource();
        //对数据库进行存取操作
        jedis.set("河南","郑州");
        System.out.println(jedis.get("河南"));
        //释放资源
        jedis.close();
        jedisPool.close();
    }
    public static void main(String[]args){
        JedisDemo jedisDemo=new JedisDemo();
        jedisDemo.test();
    }
}

(2)运行结果:

技术图片

 

 4、连接池工具类:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisDemo {
    private static JedisPool jedisPool= null;
        static{
            //对连接池进行配置
            JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
            jedisPoolConfig.setMaxIdle(30);//最大闲置个数
            jedisPoolConfig.setMinIdle(10);//最小闲置个数
            jedisPoolConfig.setMaxTotal(50);//最大连接数
            //创建一个redis连接池
            jedisPool=new JedisPool(jedisPoolConfig,"192.168.204.128",6379);
        }
        public static Jedis getJedis(){//从连接池中获取redis的连接资源
            return jedisPool.getResource();
        }
    public static void main(String[] args){
        Jedis jedis=getJedis();
        String add=jedis.get("河南");
        System.out.println(add);
    }
}

技术图片

 5、添加配置文件的工具类:

(1)配置文件:

redis.maxIdle=30
redis.minIdle=10
redis.maxTotal=50
redis.url=192.168.204.128
redis.port=6379

(2)工具类:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class JedisDemo {
    private static JedisPool jedisPool= null;
        static{
            //读取配置文件
            InputStream inputStream=JedisDemo.class.getClassLoader().getResourceAsStream("redis.properties");
            Properties properties=new Properties();
            try {
                properties.load(inputStream);
            } catch (IOException e) {
                e.printStackTrace();
            }

            //对连接池进行配置
            JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
            jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.get("redis.maxIdle").toString()));//最大闲置个数
            jedisPoolConfig.setMinIdle(Integer.parseInt(properties.get("redis.minIdle").toString()));//最小闲置个数
            jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.get("redis.maxTotal").toString()));//最大连接数
            //创建一个redis连接池
            jedisPool=new JedisPool(jedisPoolConfig,properties.getProperty("redis.url"),Integer.parseInt(properties.get("redis.port").toString()));
        }
        public static Jedis getJedis(){//从连接池中获取redis的连接资源
            return jedisPool.getResource();
        }
    public static void main(String[] args){
        Jedis jedis=getJedis();
        String add=jedis.get("河南");
        System.out.println(add);
    }
}

读取配置文件中的信息,在有关的参数改变时,只需要改变配置文件即可。

技术图片

 

以上是关于jedis的连接池的主要内容,如果未能解决你的问题,请参考以下文章

Jedis连接池:JedisPool及连接池工具类搭建

jedis连接池爆满导致的服务不可用

Jedis连接池配置参数

Redis:实例结合源码分析Jedis连接池原理以及Jedis连接池的实现

Jedis连接池优化

将连接池与 Jedis 一起使用