转载:http://blog.csdn.net/liuxiao723846/article/details/50401406 1、使用了jedis客户端,对redis进行了封装,包括: 1)使用了redispool获取连接;以及连接的回收; 2)常用五种数据结构的常用操作封装; 1 package redis.utils; 2 3 import java.util.List; 4 import java.util.Map; 5 import java.util.Set; 6 7 //import org.apache.log4j.Logger; 8 9 10 import redis.clients.jedis.Jedis; 11 import redis.clients.jedis.JedisPool; 12 import redis.clients.jedis.JedisPoolConfig; 13 import redis.clients.jedis.SortingParams; 14 import redis.clients.jedis.BinaryClient.LIST_POSITION; 15 import redis.clients.util.SafeEncoder; 16 17 /** 18 * @author Mr.hu 19 * @version crateTime:2013-10-30 下午5:41:30 20 * Class Explain:JedisUtil 21 */ 22 public class JedisUtil { 23 24 //private Logger log = Logger.getLogger(this.getClass()); 25 /**缓存生存时间 */ 26 private final int expire = 60000; 27 /** 操作Key的方法 */ 28 public Keys KEYS; 29 /** 对存储结构为String类型的操作 */ 30 public Strings STRINGS; 31 /** 对存储结构为List类型的操作 */ 32 public Lists LISTS; 33 /** 对存储结构为Set类型的操作 */ 34 public Sets SETS; 35 /** 对存储结构为HashMap类型的操作 */ 36 public Hash HASH; 37 /** 对存储结构为Set(排序的)类型的操作 */ 38 public SortSet SORTSET; 39 private static JedisPool jedisPool = null; 40 41 private JedisUtil() { 42 43 } 44 static { 45 JedisPoolConfig config = new JedisPoolConfig(); 46 //控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取; 47 //如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。 48 config.setMaxTotal(500); 49 //控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。 50 config.setMaxIdle(5); 51 //表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException; 52 config.setMaxWaitMillis(1000 * 100); 53 //在borrow一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的; 54 config.setTestOnBorrow(true); 55 56 //redis如果设置了密码: 57 /*jedisPool = new JedisPool(config, JRedisPoolConfig.REDIS_IP, 58 JRedisPoolConfig.REDIS_PORT, 59 10000,JRedisPoolConfig.REDIS_PASSWORD); */ 60 61 //redis未设置了密码: 62 jedisPool = new JedisPool(config, "172.30.37.73",6379); 63 } 64 65 public JedisPool getPool() { 66 return jedisPool; 67 } 68 69 /** 70 * 从jedis连接池中获取获取jedis对象 71 * @return 72 */ 73 public Jedis getJedis() { 74 return jedisPool.getResource(); 75 } 76 77 78 private static final JedisUtil jedisUtil = new JedisUtil(); 79 80 81 /** 82 * 获取JedisUtil实例 83 * @return 84 */ 85 public static JedisUtil getInstance() { 86 return jedisUtil; 87 } 88 89 /** 90 * 回收jedis(放到finally中) 91 * @param jedis 92 */ 93 public void returnJedis(Jedis jedis) { 94 if (null != jedis && null != jedisPool) { 95 jedisPool.returnResource(jedis); 96 } 97 } 98 99 /** 100 * 销毁连接(放到catch中) 101 * @param pool 102 * @param jedis 103 */ 104 public static void returnBrokenResource(Jedis jedis) { 105 if (null != jedis && null != jedisPool) { 106 jedisPool.returnResource(jedis); 107 } 108 } 109 110 111 /** 112 * 设置过期时间 113 * @author ruan 2013-4-11 114 * @param key 115 * @param seconds 116 */ 117 public void expire(String key, int seconds) { 118 if (seconds <= 0) { 119 return; 120 } 121 Jedis jedis = getJedis(); 122 jedis.expire(key, seconds); 123 returnJedis(jedis); 124 } 125 126 /** 127 * 设置默认过期时间 128 * @author
上一篇:JsonUtil工具类下一篇:try、catch、finally用法总结
相关分类
关闭
站长推荐
|