JedisPool连接池代码示例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_38868875/article/details/78075248

核心包:jedis-xxx.jar和commons-pool2-xxx.jar
Jedis实例需要从JedisPool中获取

package com.csl.test;

import java.util.ArrayList;
import java.util.List;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;

public class RedisConnect {
	 private JedisPool jedisPool;//非切片连接池
     private ShardedJedisPool shardedJedisPool;//切片连接池
     private static RedisConnect redisConnect;
     private RedisConnect() 
     { 
         initialPool(); 
         initialShardedPool(); 
     } 

     public static RedisConnect getRedisConnect(){
         if(redisConnect==null){
             synchronized (RedisConnect.class) {
                 if(redisConnect==null) redisConnect = new RedisConnect();
             }
         }
         return redisConnect;
     }

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

     public ShardedJedis getShardedJedis() {
         return  shardedJedisPool.getResource();
     }

     /**
      * 初始化非切片池
      */
     private void initialPool() 
     { 
         // 池基本配置 
         JedisPoolConfig config = new JedisPoolConfig(); 
         config.setMaxTotal(20); 
         config.setMaxIdle(5); 
         config.setMaxWaitMillis(1000l); 
         config.setTestOnBorrow(false); 

         jedisPool = new JedisPool(config,"127.0.0.1",6379);
     }

     /** 
      * 初始化切片池 
      */ 
     private void initialShardedPool() 
     { 
         // 池基本配置 
         JedisPoolConfig config = new JedisPoolConfig(); 
         config.setMaxTotal(20); 
         config.setMaxIdle(5); 
         config.setMaxWaitMillis(1000l); 
         config.setTestOnBorrow(false); 
         // slave链接 
         List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); 
         shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); 
         // 构造池 
         shardedJedisPool = new ShardedJedisPool(config, shards); 
     } 

     public void Close() {     
         jedisPool.close();
         shardedJedisPool.close();
     } 
}


------------------------------------------------------------------访问IT资料站学习更多IT知识!

猜你喜欢

转载自blog.csdn.net/baidu_38868875/article/details/78075248