Redis redis自动连接,释放示例

一.  搭建简单的redis需要的jar包

          commons-pool2-2.4.2.jar    

          spring-data-redis-1.4.0.RELEASE.jar  

          jedis-2.4.2.jar

此三个版本的jar包能够完全的配合,不会出现jar包冲突,或者版本不符合的情况.redis作为一个数据库,不会影响到正常的业务逻辑.

在java项目中,我们从redis查询是否有我们所需要的缓存,如果没有从数据库中查询出来,然后再存入redis缓存中,redis缓存相当于一个数据库的功能

一.redis利用连接池自动连接和释放

public class RedisUtil {
		private static JedisPool jedisPool = null;
	    //初始化redis连接池
	    static{
	        JedisPoolConfig config = new JedisPoolConfig();
	        //配置最大jedis实例数
	        config.setMaxTotal(1000);
	        //配置资源池最大闲置数
	        config.setMaxIdle(200);
	        //等待可用连接的最大时间
	        config.setMaxWaitMillis(10000);
	        //最大空闲连接
			config.setMaxIdle(5);
	        //则得到的jedis实例均是可用的
	        config.setTestOnBorrow(true);
	        jedisPool = new JedisPool(config,"127.0.0.1",6379);
	    }

	    //获取Jedis实例
	    public synchronized static Jedis getJedis(){
	        if(jedisPool != null){
	            Jedis resource = jedisPool.getResource();
	            return resource;
	        }else{
	            return null;
	        }
	    }

		    //释放Jedis资源
		    public static void closeJedis(final Jedis jedis){
		        if(jedis != null){
		            jedisPool.returnResource(jedis);
		        }
		    }
		    
		    
		    public static void main(String[] args) {
				Jedis jedis = RedisUtil.getJedis();
				jedis.hset("fdl_date", "aa", "bb");
				String hget = jedis.hget("fdl_date", "aa");
				System.out.println("存入redis后获取:"+hget);
				
				jedis.hdel("fdl_date", "aa");
				String hdel = jedis.hget("fdl_date", "aa");
				System.out.println("删除redis后获取:"+hdel);
				
			}
		    
   
}

三. json转换工具,把List集合转化为json,把json转化为相关对象的集合


public class JsonUtils {
	
	    /**
	     * list对象集合转化为json字符串
	     * @param <T>
	     * @param ts
	     * @return
	     */
	    public static <T> String listToJson(List<T> ts) {
	        String jsons = JSON.toJSONString(ts);
	        return jsons;
	    }

	    /**
	     * json转化为List对象集合
	     */
	    public static <T> List<T> jsonToList(String jsonString, Class<T> clazz) {
	        @SuppressWarnings("unchecked")
	        List<T> ts = (List<T>) JSONArray.parseArray(jsonString, clazz);
	        return ts;
	    }
	
}

四.在java中进行调用示例

         try {
				key = fdlBsg.getAirline()+fdlBsg.getOcty()+fdlBsg.getDcty();
				jedis = RedisUtil.getJedis();
				String discountListJson = jedis.hget("FDL_REPORT_DATA_RATE_DISCOUNT", fdlBsg.getAirline()+fdlBsg.getOcty()+fdlBsg.getDcty());
				if(null != discountListJson && discountListJson.length() > 0){
					 discountList = JsonUtils.jsonToList(discountListJson, DiscountMangent.class);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}finally{
				RedisUtil.closeJedis(jedis);
			}

猜你喜欢

转载自blog.csdn.net/m0_38068812/article/details/86506188
今日推荐