//package com.xly.utils.redis; // //import java.io.ByteArrayInputStream; //import java.io.ByteArrayOutputStream; //import java.io.ObjectInputStream; //import java.io.ObjectOutputStream; //import java.util.*; //import java.util.concurrent.TimeUnit; // //import cn.hutool.core.util.StrUtil; //import cn.hutool.json.JSONUtil; //import com.alibaba.fastjson.JSONObject; //import com.google.common.collect.Sets; //import groovy.util.logging.Slf4j; //import org.slf4j.Logger; //import org.slf4j.LoggerFactory; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Value; //import org.springframework.cache.annotation.Cacheable; //import org.springframework.stereotype.Component; // //import org.springframework.util.ObjectUtils; //import redis.clients.jedis.*; //import redis.clients.jedis.BinaryClient.LIST_POSITION; // //@Component //@Slf4j //public class JedisUtil { // // private static final Logger logger = LoggerFactory.getLogger(JedisUtil.class); // // private static final String LOCK_SUCCESS = "OK"; // private static final String SET_IF_NOT_EXIST = "NX"; // private static final String SET_WITH_EXPIRE_TIME = "PX"; // private static final String SET_WITH_EXPIRE_TIME_EX = "EX"; // private static final Long RELEASE_SUCCESS = 1L; // public static final int lockWaitTime = 4000; // public static final int scanlimit = 10000; // // @Value("${spring.redis.database}") // private int indexdb; // // @Autowired // private JedisPool jedisPool; // // /** // *

// * 通过key获取储存在redis中的value // *

// *

// * 并释放连接 // *

// * // * @param key // * @return 成功返回value 失败返回null // */ // public String get(String key) { // Jedis jedis = null; // String value = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // value = jedis.get(key); // } catch (Exception e) { // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return value; // } // /** // *

// * 通过key获取储存在redis中的value // *

// *

// * 并释放连接 // *

// * // * @param key // * @return 成功返回value 失败返回null // */ // public Object getObject(String key) { // Jedis jedis = null; // Object value = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // String jedV = jedis.get(key); // if(StrUtil.isNotEmpty(jedV) && JSONUtil.isJsonObj(jedV)){ // value = JSONUtil.parseObj(jedV); // }else{ // value = jedV; // } // } catch (Exception e) { // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return value; // } // // /** // * 递增 // * @param key 键 // * @return // */ // public long incr(String key, long delta){ // if(delta<0){ // throw new RuntimeException("递增因子必须大于0"); // } // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.incrBy(key,delta); // } catch (Exception e) { // // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 通过key获取储存在redis中的value // *

// *

// * 并释放连接 // *

// * // * @param key // * @param indexdb 选择redis库 0-15 // * @return 成功返回value 失败返回null // */ // public byte[] get(byte[] key, int indexdb) { // Jedis jedis = null; // byte[] value = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // value = jedis.get(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return value; // } // // /** // *

// * 向redis存入key和value,并释放连接资源 // *

// *

// * 如果key已经存在 则覆盖 // *

// * // * @param key // * @param value // * @param indexdb 选择redis库 0-15 // * @return 成功 返回OK 失败返回 0 // */ // public String set(String key, String value, int indexdb) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.set(key, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // return "0"; // } finally { // returnResource(jedis); // } // } // /** // *

// * 向redis存入key和value,并释放连接资源 // *

// *

// * 如果key已经存在 则覆盖 // *

// * // * @param key // * @param value // * @return 成功 返回OK 失败返回 0 // */ // public String set(String key, String value) { // return set( key, value, indexdb); // } // /** // *

// * 向redis存入key和value,并释放连接资源 // *

// *

// * 如果key已经存在 则覆盖 // *

// * // * @param key // * @param value // * @return 成功 返回OK 失败返回 0 // */ // public String setObject(String key, Object value) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // String objJson = JSONUtil.toJsonStr(value); // return jedis.set( key,objJson); // } catch (Exception e) { // // logger.error(e.getMessage()); // return "0"; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 向redis存入key和value,并释放连接资源 // *

// *

// * 如果key已经存在 则覆盖 // *

// * // * @param key // * @param value // * @param indexdb 选择redis库 0-15 // * @return 成功 返回OK 失败返回 0 // */ // public String set(byte[] key, byte[] value, int indexdb) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.set(key, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // return "0"; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 删除指定的key,也可以传入一个包含key的数组 // *

// * // * @param keys 一个key 也可以使 string 数组 // * @return 返回删除成功的个数 // */ // public Long del(String... keys) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.del(keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // } // /** // *

// * 删除指定的key,也可以传入一个包含key的数组 // *

// * // * @param keysSet 一个key 也可以使 string 数组 // * @return 返回删除成功的个数 // */ // public Long delSet(Set keysSet) { // return del(keysSet.toArray(new String[keysSet.size()])); // } // // /** // *

// * 删除指定的key,也可以传入一个包含key的数组 // *

// * // * @param indexdb 选择redis库 0-15 // * @param keys 一个key 也可以使 string 数组 // * @return 返回删除成功的个数 // */ // public Long del(int indexdb, String... keys) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.del(keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 删除指定的key,也可以传入一个包含key的数组 // *

// * // * @param indexdb 选择redis库 0-15 // * @param keys 一个key 也可以使 string 数组 // * @return 返回删除成功的个数 // */ // public Long del(int indexdb, byte[]... keys) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.del(keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 通过key向指定的value值追加值 // *

// * // * @param key // * @param str // * @return 成功返回 添加后value的长度 失败 返回 添加的 value 的长度 异常返回0L // */ // public Long append(String key, String str) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.append(key, str); // } catch (Exception e) { // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 判断key是否存在 // *

// * // * @param key // * @return true OR false // */ // public Boolean exists(String key) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.exists(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // return false; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 清空当前数据库中的所有 key,此命令从不失败。 // *

// * // * @return 总是返回 OK // */ // public String flushDB() { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.flushDB(); // } catch (Exception e) { // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return null; // } // // /** // *

// * 为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除。 // *

// * // * @param key // * @param value 过期时间,单位:秒 // * @return 成功返回1 如果存在 和 发生异常 返回 0 // */ // public Long expire(String key, int value, int indexdb) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.expire(key, value); // } catch (Exception e) { // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // } // // /** // * 普通缓存放入并设置时间 // * @param key 键 // * @param value 值 // * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 // * @return true成功 false 失败 // */ // public boolean setObjectExpire(String key,Object value,long time){ // String valueJson = JSONUtil.toJsonStr(value); // this.setex( key, new Long(time).intValue(), valueJson); // return true; // } // // /** // *

// * 以秒为单位,返回给定 key 的剩余生存时间 // *

// * // * @param key // * @return 当 key 不存在时,返回 -2 。当 key 存在但没有设置剩余生存时间时,返回 -1 。否则,以秒为单位,返回 key // * 的剩余生存时间。 发生异常 返回 0 // */ // public Long ttl(String key, int indexdb) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.ttl(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // } // /** // * 普通缓存放入并设置时间 // * @param key 键 // * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 // * @return true成功 false 失败 // */ // public Long expireSeconds(String key,long time){ // return expire( key, new Long(time).intValue(), indexdb); // } // /** // * 普通缓存放入并设置时间 // * @param key 键 // * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 // * @return true成功 false 失败 // */ // public Long expireMinutes(String key,long time){ // time = time * 60; // return expire( key, new Long(time).intValue(), indexdb); // } // /** // * 普通缓存放入并设置时间 // * @param key 键 // * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 // * @return true成功 false 失败 // */ // public String createAndExpireMinutes(String key,String value,long time){ // return setexMinutes(key,new Long(time).intValue(), value); // } // // /** // *

// * 移除给定 key 的生存时间,将这个 key 从『易失的』(带生存时间 key )转换成『持久的』(一个不带生存时间、永不过期的 key ) // *

// * // * @param key // * @return 当生存时间移除成功时,返回 1 .如果 key 不存在或 key 没有设置生存时间,返回 0 , 发生异常 返回 -1 // */ // public Long persist(String key) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.persist(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // return -1L; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 新增key,并将 key 的生存时间 (以秒为单位) // *

// * // * @param key // * @param seconds 生存时间 单位:秒 // * @param value // * @return 设置成功时返回 OK 。当 seconds 参数不合法时,返回一个错误。 // */ // public String setex(String key, int seconds, String value) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.setex(key, seconds, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return null; // } // /** // *

// * 新增key,并将 key 的生存时间 (以秒为单位) // *

// * // * @param key // * @param seconds 生存时间 单位:秒 // * @param value // * @return 设置成功时返回 OK 。当 seconds 参数不合法时,返回一个错误。 // */ // public String setexMinutes(String key, int seconds, String value) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // seconds = seconds*60; // return jedis.setex(key, seconds, value); // } catch (Exception e) { // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return null; // } // // /** // *

// * 设置key value,如果key已经存在则返回0,nx==> not exist // *

// * // * @param key // * @param value // * @return 成功返回1 如果存在 和 发生异常 返回 0 // */ // public Long setnx(String key, String value) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.setnx(key, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 将给定 key 的值设为 value ,并返回 key 的旧值(old value)。 // *

// *

// * 当 key 存在但不是字符串类型时,返回一个错误。 // *

// * // * @param key // * @param value // * @return 返回给定 key 的旧值。当 key 没有旧值时,也即是, key 不存在时,返回 nil // */ // public String getSet(String key, String value) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.getSet(key, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return null; // } // // /** // *

// * 设置key value并制定这个键值的有效期 // *

// * // * @param key // * @param value // * @param seconds 单位:秒 // * @return 成功返回OK 失败和异常返回null // */ // public String setex(String key, String value, int seconds) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.setex(key, seconds, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key 和offset 从指定的位置开始将原先value替换 // *

// *

// * 下标从0开始,offset表示从offset下标开始替换 // *

// *

// * 如果替换的字符串长度过小则会这样 // *

// *

// * example: // *

// *

// * value : bigsea@zto.cn // *

// *

// * str : abc // *

// *

// * 从下标7开始替换 则结果为 // *

// *

// * RES : bigsea.abc.cn // *

// * // * @param key // * @param str // * @param offset 下标位置 // * @return 返回替换后 value 的长度 // */ // public Long setrange(String key, String str, int offset) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.setrange(key, offset, str); // } catch (Exception e) { // // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // } // // /** // *

// * 通过批量的key获取批量的value // *

// * // * @param keys string数组 也可以是一个key // * @return 成功返回value的集合, 失败返回null的集合 ,异常返回空 // */ // public List mget(String... keys) { // Jedis jedis = null; // List values = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // values = jedis.mget(keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return values; // } // // /** // *

// * 批量的设置key:value,可以一个 // *

// *

// * example: // *

// *

// * obj.mset(new String[]{"key2","value1","key2","value2"}) // *

// * // * @param keysvalues // * @return 成功返回OK 失败 异常 返回 null // */ // public String mset(String... keysvalues) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.mset(keysvalues); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 批量的设置key:value,可以一个,如果key已经存在则会失败,操作会回滚 // *

// *

// * example: // *

// *

// * obj.msetnx(new String[]{"key2","value1","key2","value2"}) // *

// * // * @param keysvalues // * @return 成功返回1 失败返回0 // */ // public Long msetnx(String... keysvalues) { // Jedis jedis = null; // Long res = 0L; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.msetnx(keysvalues); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 设置key的值,并返回一个旧值 // *

// * // * @param key // * @param value // * @return 旧值 如果key不存在 则返回null // */ // public String getset(String key, String value) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.getSet(key, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过下标 和key 获取指定下标位置的 value // *

// * // * @param key // * @param startOffset 开始位置 从0 开始 负数表示从右边开始截取 // * @param endOffset // * @return 如果没有返回null // */ // public String getrange(String key, int startOffset, int endOffset) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.getrange(key, startOffset, endOffset); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key 对value进行加值+1操作,当value不是int类型时会返回错误,当key不存在是则value为1 // *

// * // * @param key // * @return 加值后的结果 // */ // public Long incr(String key) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.incr(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key给指定的value加值,如果key不存在,则这是value为该值 // *

// * // * @param key // * @param integer // * @return // */ // public Long incrBy(String key, Long integer) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.incrBy(key, integer); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 对key的值做减减操作,如果key不存在,则设置key为-1 // *

// * // * @param key // * @return // */ // public Long decr(String key) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.decr(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 减去指定的值 // *

// * // * @param key // * @param integer // * @return // */ // public Long decrBy(String key, Long integer) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.decrBy(key, integer); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取value值的长度 // *

// * // * @param key // * @return 失败返回null // */ // public Long serlen(String key) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.strlen(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key给field设置指定的值,如果key不存在,则先创建 // *

// * // * @param key // * @param field 字段 // * @param value // * @return 如果存在返回0 异常返回null // */ // public Long hset(String key, String field, String value) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hset(key, field, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key给field设置指定的值,如果key不存在则先创建,如果field已经存在,返回0 // *

// * // * @param key // * @param field // * @param value // * @return // */ // public Long hsetnx(String key, String field, String value) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hsetnx(key, field, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key同时设置 hash的多个field // *

// * // * @param key // * @param hash // * @return 返回OK 异常返回null // */ // public String hmset(String key, Map hash, int indexdb) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hmset(key, hash); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key 和 field 获取指定的 value // *

// * // * @param key // * @param field // * @return 没有返回null // */ // public String hget(String key, String field) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hget(key, field); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key 和 fields 获取指定的value 如果没有对应的value则返回null // *

// * // * @param key // * @param fields 可以使 一个String 也可以是 String数组 // * @return // */ // public List hmget(String key, int indexdb, String... fields) { // Jedis jedis = null; // List res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hmget(key, fields); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key给指定的field的value加上给定的值 // *

// * // * @param key // * @param field // * @param value // * @return // */ // public Long hincrby(String key, String field, Long value) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hincrBy(key, field, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key和field判断是否有指定的value存在 // *

// * // * @param key // * @param field // * @return // */ // public Boolean hexists(String key, String field) { // Jedis jedis = null; // Boolean res = false; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hexists(key, field); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回field的数量 // *

// * // * @param key // * @return // */ // public Long hlen(String key) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hlen(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // // } // // /** // *

// * 通过key 删除指定的 field // *

// * // * @param key // * @param fields 可以是 一个 field 也可以是 一个数组 // * @return // */ // public Long hdel(String key, String... fields) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hdel(key, fields); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回所有的field // *

// * // * @param key // * @return // */ // public Set hkeys(String key) { // Jedis jedis = null; // Set res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hkeys(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回所有和key有关的value // *

// * // * @param key // * @return // */ // public List hvals(String key) { // Jedis jedis = null; // List res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hvals(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取所有的field和value // *

// * // * @param key // * @return // */ // public Map hgetall(String key, int indexdb) { // Jedis jedis = null; // Map res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.hgetAll(key); // } catch (Exception e) { // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key向list头部添加字符串 // *

// * // * @param key // * @param strs 可以使一个string 也可以使string数组 // * @return 返回list的value个数 // */ // public Long lpush(int indexdb, String key, String... strs) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.lpush(key, strs); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key向list尾部添加字符串 // *

// * // * @param key // * @param strs 可以使一个string 也可以使string数组 // * @return 返回list的value个数 // */ // public Long rpush(String key, String... strs) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.rpush(key, strs); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key在list指定的位置之前或者之后 添加字符串元素 // *

// * // * @param key // * @param where LIST_POSITION枚举类型 // * @param pivot list里面的value // * @param value 添加的value // * @return // */ // public Long linsert(String key, LIST_POSITION where, String pivot, // String value) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.linsert(key, where, pivot, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key设置list指定下标位置的value // *

// *

// * 如果下标超过list里面value的个数则报错 // *

// * // * @param key // * @param index 从0开始 // * @param value // * @return 成功返回OK // */ // public String lset(String key, Long index, String value) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.lset(key, index, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key从对应的list中删除指定的count个 和 value相同的元素 // *

// * // * @param key // * @param count 当count为0时删除全部 // * @param value // * @return 返回被删除的个数 // */ // public Long lrem(String key, long count, String value) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.lrem(key, count, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key保留list中从strat下标开始到end下标结束的value值 // *

// * // * @param key // * @param start // * @param end // * @return 成功返回OK // */ // public String ltrim(String key, long start, long end) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.ltrim(key, start, end); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key从list的头部删除一个value,并返回该value // *

// * // * @param key // * @return // */ // synchronized public String lpop(String key) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.lpop(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key从list尾部删除一个value,并返回该元素 // *

// * // * @param key // * @return // */ // synchronized public String rpop(String key, int indexdb) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.rpop(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key从一个list的尾部删除一个value并添加到另一个list的头部,并返回该value // *

// *

// * 如果第一个list为空或者不存在则返回null // *

// * // * @param srckey // * @param dstkey // * @return // */ // public String rpoplpush(String srckey, String dstkey, int indexdb) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.rpoplpush(srckey, dstkey); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取list中指定下标位置的value // *

// * // * @param key // * @param index // * @return 如果没有返回null // */ // public String lindex(String key, long index) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.lindex(key, index); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回list的长度 // *

// * // * @param key // * @return // */ // public Long llen(String key) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.llen(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取list指定下标位置的value // *

// *

// * 如果start 为 0 end 为 -1 则返回全部的list中的value // *

// * // * @param key // * @param start // * @param end // * @return // */ // public List lrange(String key, long start, long end, int indexdb) { // Jedis jedis = null; // List res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.lrange(key, start, end); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 将列表 key 下标为 index 的元素的值设置为 value // *

// * // * @param key // * @param index // * @param value // * @return 操作成功返回 ok ,否则返回错误信息 // */ // public String lset(String key, long index, String value) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.lset(key, index, value); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return null; // } // // /** // *

// * 返回给定排序后的结果 // *

// * // * @param key // * @param sortingParameters // * @return 返回列表形式的排序结果 // */ // public List sort(String key, SortingParams sortingParameters) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.sort(key, sortingParameters); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return null; // } // // /** // *

// * 返回排序后的结果,排序默认以数字作为对象,值被解释为双精度浮点数,然后进行比较。 // *

// * // * @param key // * @return 返回列表形式的排序结果 // */ // public List sort(String key) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.sort(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return null; // } // // /** // *

// * 通过key向指定的set中添加value // *

// * // * @param key // * @param members 可以是一个String 也可以是一个String数组 // * @return 添加成功的个数 // */ // public Long sadd(String key, String... members) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.sadd(key, members); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key删除set中对应的value值 // *

// * // * @param key // * @param members 可以是一个String 也可以是一个String数组 // * @return 删除的个数 // */ // public Long srem(String key, String... members) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.srem(key, members); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key随机删除一个set中的value并返回该值 // *

// * // * @param key // * @return // */ // public String spop(String key) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.spop(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取set中的差集 // *

// *

// * 以第一个set为标准 // *

// * // * @param keys 可以使一个string 则返回set中所有的value 也可以是string数组 // * @return // */ // public Set sdiff(String... keys) { // Jedis jedis = null; // Set res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.sdiff(keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取set中的差集并存入到另一个key中 // *

// *

// * 以第一个set为标准 // *

// * // * @param dstkey 差集存入的key // * @param keys 可以使一个string 则返回set中所有的value 也可以是string数组 // * @return // */ // public Long sdiffstore(String dstkey, String... keys) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.sdiffstore(dstkey, keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取指定set中的交集 // *

// * // * @param keys 可以使一个string 也可以是一个string数组 // * @return // */ // public Set sinter(String... keys) { // Jedis jedis = null; // Set res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.sinter(keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取指定set中的交集 并将结果存入新的set中 // *

// * // * @param dstkey // * @param keys 可以使一个string 也可以是一个string数组 // * @return // */ // public Long sinterstore(String dstkey, String... keys) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.sinterstore(dstkey, keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回所有set的并集 // *

// * // * @param keys 可以使一个string 也可以是一个string数组 // * @return // */ // public Set sunion(String... keys) { // Jedis jedis = null; // Set res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.sunion(keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回所有set的并集,并存入到新的set中 // *

// * // * @param dstkey // * @param keys 可以使一个string 也可以是一个string数组 // * @return // */ // public Long sunionstore(String dstkey, String... keys) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.sunionstore(dstkey, keys); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key将set中的value移除并添加到第二个set中 // *

// * // * @param srckey 需要移除的 // * @param dstkey 添加的 // * @param member set中的value // * @return // */ // public Long smove(String srckey, String dstkey, String member) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.smove(srckey, dstkey, member); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取set中value的个数 // *

// * // * @param key // * @return // */ // public Long scard(String key) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.scard(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key判断value是否是set中的元素 // *

// * // * @param key // * @param member // * @return // */ // public Boolean sismember(String key, String member) { // Jedis jedis = null; // Boolean res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.sismember(key, member); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取set中随机的value,不删除元素 // *

// * // * @param key // * @return // */ // public String srandmember(String key) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.srandmember(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取set中所有的value // *

// * // * @param key // * @return // */ // public Set smembers(String key) { // Jedis jedis = null; // Set res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.smembers(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key向zset中添加value,score,其中score就是用来排序的 // *

// *

// * 如果该value已经存在则根据score更新元素 // *

// * // * @param key // * @param score // * @param member // * @return // */ // public Long zadd(String key, double score, String member) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zadd(key, score, member); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 返回有序集 key 中,指定区间内的成员。min=0,max=-1代表所有元素 // *

// * // * @param key // * @param min // * @param max // * @return 指定区间内的有序集成员的列表。 // */ // public Set zrange(String key, long min, long max) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.zrange(key, min, max); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return null; // } // // /** // *

// * 统计有序集 key 中,值在 min 和 max 之间的成员的数量 // *

// * // * @param key // * @param min // * @param max // * @return 值在 min 和 max 之间的成员的数量。异常返回0 // */ // public Long zcount(String key, double min, double max) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.zcount(key, min, max); // } catch (Exception e) { // // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // // } // // /** // *

// * 为哈希表 key 中的域 field 的值加上增量 increment 。增量也可以为负数,相当于对给定域进行减法操作。 如果 key // * 不存在,一个新的哈希表被创建并执行 HINCRBY 命令。如果域 field 不存在,那么在执行命令前,域的值被初始化为 0 。 // * 对一个储存字符串值的域 field 执行 HINCRBY 命令将造成一个错误。本操作的值被限制在 64 位(bit)有符号数字表示之内。 // *

// *

// * 将名称为key的hash中field的value增加integer // *

// * // * @param key // * @param value // * @param increment // * @return 执行 HINCRBY 命令之后,哈希表 key 中域 field的值。异常返回0 // */ // public Long hincrBy(String key, String value, long increment) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // return jedis.hincrBy(key, value, increment); // } catch (Exception e) { // logger.error(e.getMessage()); // return 0L; // } finally { // returnResource(jedis); // } // // } // // /** // *

// * 通过key删除在zset中指定的value // *

// * // * @param key // * @param members 可以使一个string 也可以是一个string数组 // * @return // */ // public Long zrem(String key, String... members) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zrem(key, members); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key增加该zset中value的score的值 // *

// * // * @param key // * @param score // * @param member // * @return // */ // public Double zincrby(String key, double score, String member) { // Jedis jedis = null; // Double res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zincrby(key, score, member); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回zset中value的排名 // *

// *

// * 下标从小到大排序 // *

// * // * @param key // * @param member // * @return // */ // public Long zrank(String key, String member) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zrank(key, member); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回zset中value的排名 // *

// *

// * 下标从大到小排序 // *

// * // * @param key // * @param member // * @return // */ // public Long zrevrank(String key, String member) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zrevrank(key, member); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key将获取score从start到end中zset的value // *

// *

// * socre从大到小排序 // *

// *

// * 当start为0 end为-1时返回全部 // *

// * // * @param key // * @param start // * @param end // * @return // */ // public Set zrevrange(String key, long start, long end) { // Jedis jedis = null; // Set res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zrevrange(key, start, end); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回指定score内zset中的value // *

// * // * @param key // * @param max // * @param min // * @return // */ // public Set zrangebyscore(String key, String max, String min) { // Jedis jedis = null; // Set res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zrevrangeByScore(key, max, min); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回指定score内zset中的value // *

// * // * @param key // * @param max // * @param min // * @return // */ // public Set zrangeByScore(String key, double max, double min) { // Jedis jedis = null; // Set res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zrevrangeByScore(key, max, min); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 返回指定区间内zset中value的数量 // *

// * // * @param key // * @param min // * @param max // * @return // */ // public Long zcount(String key, String min, String max) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zcount(key, min, max); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key返回zset中的value个数 // *

// * // * @param key // * @return // */ // public Long zcard(String key) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zcard(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key获取zset中value的score值 // *

// * // * @param key // * @param member // * @return // */ // public Double zscore(String key, String member) { // Jedis jedis = null; // Double res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zscore(key, member); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key删除给定区间内的元素 // *

// * // * @param key // * @param start // * @param end // * @return // */ // public Long zremrangeByRank(String key, long start, long end) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zremrangeByRank(key, start, end); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // *

// * 通过key删除指定score内的元素 // *

// * // * @param key // * @param start // * @param end // * @return // */ // public Long zremrangeByScore(String key, double start, double end) { // Jedis jedis = null; // Long res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.zremrangeByScore(key, start, end); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /**返回满足pattern表达式的所有 key*/ // public Set keys(String pattern) { // Set res = this.scan(pattern); // return res; // } // // /** // * key模糊查找 // * @param keys 要查找的key 例: aaa* ,aaa开头的所有key // * @return 匹配到的key集合 // */ // public Set scan(String keys) { // return scan(keys,scanlimit); // } // // /** // * 根据match 查询redis中中的所有key // * @param match input the argument "ONLINE_*" // * @param limit 每次查询个数,不要太大 // */ // public Set scan(String match,int limit) { // HashSet keySet = Sets.newHashSet(); // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // //指定规则 // ScanParams scanParams = new ScanParams().match(match).count(limit); // boolean hasNext = true; // //第一次查询的游标 // String cursor = "0"; // while (hasNext) { // ScanResult scanResult = jedis.scan(cursor,scanParams); // //返回当前查询的key // List keyList = scanResult.getResult(); // keySet.addAll(keyList); // // cursor = scanResult.getStringCursor(); // if ("0".equals(cursor)) { // hasNext = false; // } // } // } catch (Exception e) { // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return keySet; // } // // /** // *

// * 通过key判断值得类型 // *

// * // * @param key // * @return // */ // public String type(String key) { // Jedis jedis = null; // String res = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // res = jedis.type(key); // } catch (Exception e) { // // logger.error(e.getMessage()); // } finally { // returnResource(jedis); // } // return res; // } // // /** // * 序列化对象 // * // * @param obj // * @return 对象需实现Serializable接口 // */ // public static byte[] ObjTOSerialize(Object obj) { // ObjectOutputStream oos = null; // ByteArrayOutputStream byteOut = null; // try { // byteOut = new ByteArrayOutputStream(); // oos = new ObjectOutputStream(byteOut); // oos.writeObject(obj); // byte[] bytes = byteOut.toByteArray(); // return bytes; // } catch (Exception e) { // } // return null; // } // // /** // * 反序列化对象 // * // * @param bytes // * @return 对象需实现Serializable接口 // */ // public static Object unserialize(byte[] bytes) { // ByteArrayInputStream bais = null; // try { // //反序列化 // bais = new ByteArrayInputStream(bytes); // ObjectInputStream ois = new ObjectInputStream(bais); // return ois.readObject(); // } catch (Exception e) { // } // return null; // } // // /** // * 返还到连接池 // * // * @param jedis // */ // public static void returnResource(Jedis jedis) { // if (jedis != null) { // jedis.close(); // } // } // // /** // * jedis 上锁 // * @param lockKey // * @param requestId 锁的值 // * @param expireTime // * @return // */ // public boolean tryLock(String lockKey, String requestId, int expireTime) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // String result = jedis.set(lockKey, requestId, SET_IF_NOT_EXIST, SET_WITH_EXPIRE_TIME_EX, expireTime); // if (LOCK_SUCCESS.equals(result)) { // return true; // } // } catch (Exception e) { // e.printStackTrace(); // return false; // } finally { // returnResource(jedis); // } // return false; // } // /** // * jedis 上锁 // * @param lockKey // * @param requestId 锁的值 // * @param expireTime // * @return // */ // public boolean tryLockSec(String lockKey, String requestId, int expireTime) { // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // String result = jedis.set(lockKey, requestId, SET_IF_NOT_EXIST, SET_WITH_EXPIRE_TIME_EX, expireTime); // if (LOCK_SUCCESS.equals(result)) { // return true; // } // } catch (Exception e) { // e.printStackTrace(); // return false; // } finally { // returnResource(jedis); // } // return false; // } // /** // * jedis 上锁 // * @param lockKey // * @param requestId 锁的值 // * @return // */ // public boolean tryLock(String lockKey, String requestId) { // return this.tryLock( lockKey, requestId, lockWaitTime); // } // // // /** // * jedis 上锁没返回 // * @param lockKey // * @param requestId // * @param expireTime // */ // public void lock(String lockKey, String requestId, int expireTime) { // while (true) { // if (tryLock(lockKey, requestId, expireTime)) { // return; // } // } // } // // /** // * jedis解锁 // * @param lockKey // * @param requestId // * @return // */ // public boolean unLock(String lockKey, String requestId) { // String script = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end"; // Jedis jedis = null; // try { // jedis = jedisPool.getResource(); // jedis.select(indexdb); // Object result = jedis.eval(script, Collections.singletonList(lockKey), // Collections.singletonList(requestId)); // if (RELEASE_SUCCESS.equals(result)) { // System.out.println("unlock "+ Thread.currentThread().getName()+ " requestId:" + requestId); // return true; // } // jedis.del(lockKey); // } catch (Exception e) { // throw e; // } finally { // returnResource(jedis); // } // return false; // } // // // @Cacheable(value="getSelectRedis" ,key="#sCacheableName") // public List> getSelectRedis(String sCacheableName,List> selectDate) { // return selectDate; // } // // public static void main(String[] args) { // /*JedisPool jedisPool = new JedisPool(null,"localhost",6379,100,"123456"); // Jedis jedis = jedisPool.getResource(); // //r.get("", RedisConstants.datebase4); // jedis.select(RedisConstants.datebase4); // Set str = jedis.keys("*"); // for (String string : str) { // System.out.println(string); // }*/ // } //}