Redis 第二集Redis连接池(Redis)

说明: 1. 演示Redis连接池JedisPool 连接池
2. 笔者代码中的注释有各种实用说明(当然你觉得注释碍眼可以直接删除):
(a).遇到异常及解决方案
(b).一些使用说明
©.知识点对比与类比
3. 此项目演示需要jedis.jar和commons-pool2.jar

=代码如下======

package com.it.util;

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

/**
 * Redis连接池JedisPool简单使用
 * 
 * 1.每次都要去连接Jedis是不是很浪费连接资源
 *  类比jdbc通常会使用jdbc连接池cp30或dbcp
 *  同样的不能经常性的连接/断开连接Redis服务器,这样的网络开销是很大的。
 *  所以,也使用一个池子来管理jedis连接,这个池子就是JedisPool
 *  
 *  2.JedisPool是线程安全的,可以创建可靠的Jedis实例。
 *    你凭什么说JedisPool是线程安全的?因为它是一个无状态对象
 *  
 *  3.创建JedisPool
 *  
 * @author 拈花为何不一笑
 * 
 * 说明:此项目演示需要jedis.jar和commons-pool2.jar
 * 
 */
public class JedisPoolApp {
	
	private JedisPool jedisPool;
	
	//初始化JedisPool连接池
	public void init(){
		JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
		jedisPoolConfig.setMaxTotal(10);//设置最大连接数
        jedisPool = new JedisPool(jedisPoolConfig, "localhost",6379,5000,"foo666k");
      
        
	}

	//从JedisPool中获取一个Jedis实例
	public Jedis getJedis(){
		return jedisPool.getResource();
	}

	//释放Jedis
	public void freeJedis(Jedis jedis){
		if(null != jedis){
			//jedisPool.returnResource(jedis);此方法为早期版本方法,已过时或废弃
			jedisPool.close();
		}
	}
	
	
	
	/**
	 * 单元测试
	 * @param args
	 */
	public static void main(String[] args) {

		JedisPoolApp jApp = new JedisPoolApp();
		//初始化jedis连接池
		jApp.init();
		//从连接池中获取一个Jedis实例
		Jedis jedis = jApp.getJedis();
		jedis.select(1);//选择Redis数据库1,后面的相关的操作数据就存放在数据库1中
		//业务操作
		//遇到异常:JedisDataException, MISCONF Redis is configured to save RDB snapshots
		//but is currently not able to persist on disk...
		//解决方案:stop-writes-on-bgsave-error no(redis.windows.conf配置文件中把yes设置成no,并且重启Redis服务器)
		jedis.set("str-key","i am redis database1");
		System.out.println(jedis.get("str-key"));
		
		//释放jedis连接
		jApp.freeJedis(jedis);

	}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值