版权声明:本文为博主原创文章,未经博主允许不得转载。 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知识!