Jedis 3.0 即以上Java jedis 整合 redis

原文链接: https://my.oschina.net/ouminzy/blog/892929

玩了一下 redis ,因此使用 jedis 。。。


    redis.clients
    jedis
    2.9.0
	

但是这个jedis 的版本比较高,,, 百度时候的 其他 redisUtil 或者是 整合方案已经过时了。。。 因此 看了 一下jedis 这个版本的代码 改造了一下。 首先是 spring的 redis 配置:




	
	
	 
	  
	
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
	
	
	

	
	  
            
            
         
         
          
        
	

然后是 redisUtil 当然了这个只是单机的,不算完全,参考即可,,,而且代码 也是百度 改造了,,,分布式的也是差不多的,百度去吧, 只是释放连接的时候,方法换一下,,,低版本的方式已经过时了。

package com.skg.redis;


import org.apache.log4j.Logger;

import com.skg.base.core.helper.SpringHelper;

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

/**
 * 
 * @author : oumin
 * @date : redis 调用类, 单机的目前主要是,,而不是集群的
 * @desc :2017年5月4日
 *
 */
public class RedisUtil {

	private static Logger log = Logger.getLogger(RedisUtil.class);

	private static JedisPool jedisPool = null;


	public synchronized static Jedis getJedis() {
		// 初始化池,获取 spring 容器里面初始化的redis池的对象
		if (null == jedisPool) {
			jedisPool = (JedisPool) SpringHelper.getBean("jedisPool");
		}

		try {
			if (jedisPool != null) {
				Jedis resource = jedisPool.getResource();
				return resource;
			} else {
				log.error("连接池获取redis 连接失败。redis对象为空!");
				return null;
			}
		} catch (Exception e) {
			log.error(e.getMessage(), e);
			return null;
		}
	}


	/**
	 * 释放jedis资源
	 * 
	 * @param jedis
	 */
	public static void returnResource(final Jedis jedis) {
		if (jedis != null) {
			// jedisPool.returnResource(jedis); 过时了,不要使用这个释放资源
			jedis.close();// 使用close回收

		}
	}


	public static void put(String key, String value) {
		Jedis jedis = null;
		// 从池中获取一个jedis实例
		try {
			jedis = getJedis();
			jedis.set(key, value);
		} catch (Exception e) {
			log.error(e.getMessage(), e);

		} finally {
			// 还回到连接池
			returnResource(jedis);
		}
	}


	public static String get(String key) {
		String value = "";
		Jedis jedis = null;
		// 从池中获取一个jedis实例
		try {
			jedis = getJedis();
			value = jedis.get(key);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		} finally {
			// 还回到连接池
			returnResource(jedis);
		}
		return value;
	}

	public static boolean exists(String key) {
		boolean bool = false;
		Jedis jedis = null;
		// 从池中获取一个jedis实例
		try {
			jedis = getJedis();
			bool = jedis.exists(key);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		} finally {
			// 还回到连接池
			returnResource(jedis);
		}
		return bool;
	}


	public static void incr(String key) {
		Jedis jedis = null;
		// 从池中获取一个jedis实例
		try {
			jedis = getJedis();
			jedis.incr(key);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		} finally {
			// 还回到连接池
			returnResource(jedis);
		}
	}


	public static void sadd(String key, String members) {
		Jedis jedis = null;
		// 从池中获取一个jedis实例
		try {
			jedis = getJedis();
			jedis.sadd(key, members);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		} finally {
			// 还回到连接池
			returnResource(jedis);
		}
	}


	public static boolean sismember(String key, String members) {
		Jedis jedis = null;
		boolean bool = false;
		// 从池中获取一个jedis实例
		try {
			jedis = getJedis();
			bool = jedis.sismember(key, members);
		} catch (Exception e) {
			log.error(e.getMessage(), e);
		} finally {
			// 还回到连接池
			returnResource(jedis);
		}
		return bool;
	}

}

以后 我继续玩redis的时候再继续完善了。当然了能够开始玩redis的,相信看了一下redis的 pool的 源码也是知道在新版本里面是怎么使用和配置的。

转载于:https://my.oschina.net/ouminzy/blog/892929

你可能感兴趣的:(Jedis 3.0 即以上Java jedis 整合 redis)