1、当redis服务器打开之后,java如何连接运行在内存中的redis呢?java使用jedis连接redis,需要两个jar包,一个是jedis.2.9.0.jar,一个是jedis的依赖包common.pool.jar,笔者建议使用maven下载,可以在maven仓库找到其maven依赖连同其jar包一起下载。(jedis.2.9.0.jar、common.pool.jar,)
2、使用连接池连接redis,redis大多应用于高并发,因此在创建连接池的应该避免多线程访问不安全。请参考下文
连接池的设置:
public class RedisPoolUtils {
private static JedisPool jedisPool = null;
public static JedisPool getJedisPool(){
Lock lock = new ReentrantLock();
lock.lock();
if(jedisPool==null) {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
//连接池中最大连接数
jedisPoolConfig.setMaxTotal(100);
//当连接池资源耗尽时,客户端最大等待时间单位是毫秒
jedisPoolConfig.setMaxWaitMillis(5000);
//连接池中最大空闲的连接数
jedisPoolConfig.setMaxIdle(20);
//连接池中最少空闲的连接数
jedisPoolConfig.setMinIdle(5);
//依次为连接池配置,IP,端口,超时时间
JedisPool jedisPool = new JedisPool(jedisPoolConfig,"localhost",6379,5000);
}
lock.unlock();
return jedisPool;
}
//通过该工具方法回收已经用完了的redis连接
public static void recycleConnection(JedisPool jedisPool, Jedis jedis) {
//需要判断传入的jedis是否为空
if(null != jedis) {
//如果不等于空,则可以回收该连接
jedisPool.returnResource(jedis);
}
}
}
连接池的测试:
public static void main(String[] args){ //获取jedisPool JedisPool jedisPool = RedisPoolUtils.getJedisPool(); //获取jedis实例 Jedis jedis = jedisPool.getResource(); System.out.println( jedis.ping()); jedis.set("name","jing"); String name = jedis.get("name"); System.out.println(name); RedisPoolUtils.recycleConnection(jedisPool,jedis); }
结果:PONG
jing