Play整合Redis緩存

  做者:A.cKitten 出處:http://www.cnblogs.com/BrickMover 嚴禁轉載。 java

---------------------------------------------------------------------------------------------分割線------------------------------------------------------------------------------------------------- redis

  第一次在博客園發博客.寫的很差,說的不對之處但願你們能諒解~!!!!!!!!!!apache

---------------------------------------------------------------------------------------------分割線-------------------------------------------------------------------------------------------------編程

  以前在博客園閱讀了許多編程知識.今天想到前不久寫的一個Play框架多模塊項目,各模塊獨立以後,有許多公共緩存須要處理,因此用到了redis.就把項目裏用到的緩存功能分享下.緩存

項目是一個電商平臺,分爲多模塊開發.方便後期各模塊獨立.以下圖:app

 

basic部分 公共文件部分結構以下:框架

 

JedisPool  文件:ide

 1 package common.utils.redis;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import common.constants.ConfConst;
 7 
 8 import redis.clients.jedis.Jedis;
 9 import redis.clients.jedis.JedisShardInfo;
10 import redis.clients.jedis.ShardedJedisPool;
11 import redis.clients.util.Hashing;
12 import redis.clients.util.Sharded;
13 
14 public class JedisPool {
15   private static ShardedJedisPool pool = null;  
16 
17   /** 
18    * 構建redis鏈接池 
19    *  
20    * @param ip 
21    * @param port 
22    * @return JedisPool 
23    */  
24   public static ShardedJedisPool getPool() {  
25       if (pool == null) {  
26           JedisPoolConfig config = new JedisPoolConfig();  
27           //若是賦值爲-1,則表示不限制;若是pool已經分配了maxActive個jedis實例,則此時pool的狀態爲exhausted(耗盡)。  
28           config.setMaxActive(ConfConst.REDIS_MAXACTIVE);  
29           //控制一個pool最多有多少個狀態爲idle(空閒的)的jedis實例。  
30           config.setMaxIdle(ConfConst.REDIS_MAXIDLE);  
31           //表示當borrow(引入)一個jedis實例時,最大的等待時間,若是超過等待時間,則直接拋出JedisConnectionException;  
32           config.setMaxWait(ConfConst.REDIS_MAXWAIT);  
33           //在borrow一個jedis實例時,是否提早進行validate操做;若是爲true,則獲得的jedis實例均是可用的;  
34           config.setTestOnBorrow(ConfConst.REDIS_TESTONBORROW);  
35           config.setTestOnReturn(ConfConst.REDIS_testOnReturn);  
36           List<JedisShardInfo> jdsInfoList =new ArrayList<JedisShardInfo>();  
37           String host = ConfConst.REDIS_HOST;  
38           int port = ConfConst.REDIS_PORT; 
39           int timeOut = ConfConst.REDIS_TIMEOUT;
40           int weight = 1;
41           String password = ConfConst.REDIS_PASS;
42           int db=ConfConst.REDIS_DB;
43           JedisShardInfo info = new JedisShardInfoEx(host,port,timeOut,weight,password,db);
44           jdsInfoList.add(info);
45           pool =new ShardedJedisPool(config, jdsInfoList, Hashing.MURMUR_HASH,Sharded.DEFAULT_KEY_TAG_PATTERN); 
46 
47       }
48       return pool;  
49   }
50 }
View Code

JedisPoolConfig  文件:學習

  1 package common.utils.redis;
  2 
  3 import org.apache.commons.pool.impl.GenericObjectPool.Config;
  4 
  5 import redis.clients.jedis.Jedis;
  6 import redis.clients.jedis.JedisPool;
  7 
  8 /**
  9  * JedisPoolConfig
 10  *
 11  * @description 
 12  *
 13  * @author HuangShaoFeng
 14  * @createDate 2017年2月15日
 15  */
 16 public class JedisPoolConfig extends Config {
 17     public JedisPoolConfig() {
 18         setTestWhileIdle(true);
 19         setMinEvictableIdleTimeMillis(60000);
 20         setTimeBetweenEvictionRunsMillis(30000);
 21         setNumTestsPerEvictionRun(-1);
 22     }
 23 
 24     public int getMaxIdle() {
 25         return maxIdle;
 26     }
 27 
 28     public void setMaxIdle(int maxIdle) {
 29         this.maxIdle = maxIdle;
 30     }
 31 
 32     public int getMinIdle() {
 33         return minIdle;
 34     }
 35 
 36     public void setMinIdle(int minIdle) {
 37         this.minIdle = minIdle;
 38     }
 39 
 40     public int getMaxActive() {
 41         return maxActive;
 42     }
 43 
 44     public void setMaxActive(int maxActive) {
 45         this.maxActive = maxActive;
 46     }
 47 
 48     public long getMaxWait() {
 49         return maxWait;
 50     }
 51 
 52     public void setMaxWait(long maxWait) {
 53         this.maxWait = maxWait;
 54     }
 55 
 56     public byte getWhenExhaustedAction() {
 57         return whenExhaustedAction;
 58     }
 59 
 60     public void setWhenExhaustedAction(byte whenExhaustedAction) {
 61         this.whenExhaustedAction = whenExhaustedAction;
 62     }
 63 
 64     public boolean isTestOnBorrow() {
 65         return testOnBorrow;
 66     }
 67 
 68     public void setTestOnBorrow(boolean testOnBorrow) {
 69         this.testOnBorrow = testOnBorrow;
 70     }
 71 
 72     public boolean isTestOnReturn() {
 73         return testOnReturn;
 74     }
 75 
 76     public void setTestOnReturn(boolean testOnReturn) {
 77         this.testOnReturn = testOnReturn;
 78     }
 79 
 80     public boolean isTestWhileIdle() {
 81         return testWhileIdle;
 82     }
 83 
 84     public void setTestWhileIdle(boolean testWhileIdle) {
 85         this.testWhileIdle = testWhileIdle;
 86     }
 87 
 88     public long getTimeBetweenEvictionRunsMillis() {
 89         return timeBetweenEvictionRunsMillis;
 90     }
 91 
 92     public void setTimeBetweenEvictionRunsMillis(
 93             long timeBetweenEvictionRunsMillis) {
 94         this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis;
 95     }
 96 
 97     public int getNumTestsPerEvictionRun() {
 98         return numTestsPerEvictionRun;
 99     }
100 
101     public void setNumTestsPerEvictionRun(int numTestsPerEvictionRun) {
102         this.numTestsPerEvictionRun = numTestsPerEvictionRun;
103     }
104 
105     public long getMinEvictableIdleTimeMillis() {
106         return minEvictableIdleTimeMillis;
107     }
108 
109     public void setMinEvictableIdleTimeMillis(long minEvictableIdleTimeMillis) {
110         this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis;
111     }
112 
113     public long getSoftMinEvictableIdleTimeMillis() {
114         return softMinEvictableIdleTimeMillis;
115     }
116 
117     public void setSoftMinEvictableIdleTimeMillis(
118             long softMinEvictableIdleTimeMillis) {
119         this.softMinEvictableIdleTimeMillis = softMinEvictableIdleTimeMillis;
120     }
121 
122 }
View Code

JedisShardInfoEx  文件:this

 1 package common.utils.redis;
 2 
 3 import org.apache.commons.lang.StringUtils;
 4 
 5 import redis.clients.jedis.Jedis;
 6 import redis.clients.jedis.JedisShardInfo;
 7 
 8 /**
 9  * JedisShardInfoEx
10  *
11  * @description 
12  *
13  * @author HuangShaoFeng
14  * @createDate 2017年2月23日
15  */
16 public class JedisShardInfoEx extends JedisShardInfo {
17     private int db;
18     public JedisShardInfoEx(String host, int port, int timeout, int weight,String password) {
19             this(host,port,timeout,weight,password,0);
20     }
21     public JedisShardInfoEx (String host, int port, int timeout, int weight,String password,int db) {
22         super(host, port, timeout, weight);
23         super.setPassword(StringUtils.isBlank(password) ? null : password);
24         this.db = db;
25     }
26     @Override
27     public Jedis createResource() {
28         Jedis jedis  = super.createResource();
29         jedis.select(db);
30         return jedis;
31     } 
32 }
View Code

RedisClientTemplate  文件:

   1 package common.utils.redis;
   2 import java.net.URLEncoder;
   3 import java.util.Collection;
   4 import java.util.HashSet;
   5 import java.util.Iterator;
   6 import java.util.List;
   7 import java.util.Map;
   8 import java.util.Set;
   9 
  10 import org.slf4j.Logger;
  11 import org.slf4j.LoggerFactory;
  12 
  13 import common.utils.SerializeUtil;
  14 import redis.clients.jedis.BinaryClient.LIST_POSITION;
  15 import redis.clients.jedis.Jedis;
  16 import redis.clients.jedis.JedisShardInfo;
  17 import redis.clients.jedis.ShardedJedis;
  18 import redis.clients.jedis.ShardedJedisPipeline;
  19 import redis.clients.jedis.SortingParams;
  20 import redis.clients.jedis.Tuple;
  21 /**
  22  * RedisClientTemplate
  23  *
  24  * @description 經過redisDataSource獲取到shardJedis,利用shardJedis中封裝好的方法,進行保存、查詢
  25  *
  26  * @author HuangShaoFeng
  27  * @createDate 2017年2月15日
  28  */
  29 public class RedisClientTemplate {
  30     
  31     private static final Logger log = LoggerFactory.getLogger(RedisClientTemplate.class);
  32     
  33     private SerializeUtil serializeUtil=new SerializeUtil();
  34     
  35     private static RedisDataSource redisDataSource;
  36     
  37     static {
  38         synchronized (RedisClientTemplate.class) {
  39             if (redisDataSource == null) {
  40                 redisDataSource = new RedisDataSourceImpl();
  41             }
  42         }
  43     }
  44     
  45     public void disconnect() {
  46         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
  47         shardedJedis.disconnect();
  48     }
  49     
  50     
  51     /**
  52      * 通配符獲取key
  53      * @param keyPattern
  54      * @return
  55      */
  56     public Set<String> keyPattern(String keyPattern){
  57         Set<String> result = null;
  58         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
  59         if (shardedJedis == null) {
  60             return result;
  61         }
  62         Collection<Jedis> jediss = shardedJedis.getAllShards();
  63         if (jediss == null || jediss.size() == 0) {
  64             return result;
  65         }
  66         Iterator<Jedis> it = jediss.iterator();
  67         Jedis jedis = null;
  68         
  69         
  70         
  71         boolean broken = false;
  72         try {
  73             if(result == null){
  74                 result = new HashSet<String>();
  75             }
  76             while (it.hasNext() && jedis == null) {
  77                 jedis = it.next();
  78                 result.addAll(jedis.keys(keyPattern));
  79             }
  80         } catch (Exception e) {
  81             log.error(e.getMessage(), e);
  82             broken = true;
  83         } finally {
  84             redisDataSource.returnResource(shardedJedis, broken);
  85         }
  86         return result;
  87     }
  88     
  89     /**
  90      * 刪除通配符獲取key
  91      * @param keyPattern
  92      * @return
  93      */
  94     public Long delPattern(String keyPattern){
  95         Long result = 0L;
  96         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
  97         if (shardedJedis == null) {
  98             return result;
  99         }
 100         Collection<Jedis> jediss = shardedJedis.getAllShards();
 101         if (jediss == null || jediss.size() == 0) {
 102             return result;
 103         }
 104         Iterator<Jedis> it = jediss.iterator();
 105         Jedis jedis = null;
 106         
 107         boolean broken = false;
 108         try {
 109             while (it.hasNext() && jedis == null) {
 110                 jedis = it.next();
 111                 Set<String> keys = jedis.keys(keyPattern);
 112                 for (String key : keys) {
 113                     result += jedis.del(key);
 114                 }
 115             }
 116         } catch (Exception e) {
 117             log.error(e.getMessage(), e);
 118             broken = true;
 119         } finally {
 120             redisDataSource.returnResource(shardedJedis, broken);
 121         }
 122         return result;
 123     }
 124     
 125     /**
 126      * 設置對象
 127      * @param key
 128      * @param value
 129      * @return
 130      */
 131     public String set(String key,Object value){
 132         String result = null;
 133         try {
 134             result = set(key.getBytes(), serializeUtil.serialize(value));
 135         } catch (Exception e) {
 136             log.error(e.getMessage(), e);
 137         }
 138         return result;
 139     }
 140     
 141     /**
 142      * 設置對象並設置過時時間
 143      * @param key
 144      * @param seconds 過時時間(秒單位)
 145      * @param value
 146      * @return
 147      */
 148     public String setex(String key, int seconds, Object value){
 149         String result = null;
 150         try {
 151             result = setex(key.getBytes(), seconds,serializeUtil.serialize(value));
 152         } catch (Exception e) {
 153             log.error(e.getMessage(), e);
 154         }
 155         return result;
 156     }
 157     
 158     /**
 159      * 獲取對象
 160      * @param key
 161      * @param clazz
 162      * @return
 163      */
 164     public <T>T get(String key,Class<T> clazz){
 165         
 166         T result = null;
 167         try {
 168             byte[] result_ = get(key.getBytes());
 169             if(result_ != null && result_.length > 0){
 170                 result = serializeUtil.unserialize(result_,clazz);
 171                 
 172             }
 173         } catch (Exception e) {
 174             log.error(e.getMessage(), e);
 175             result = null;
 176         }
 177         return result;
 178     }
 179     
 180     /**
 181      * 設置單個值
 182      * 
 183      * @param key
 184      * @param value
 185      * @return
 186      */
 187     public String set(String key, String value) {
 188         String result = null;
 189 
 190         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 191         if (shardedJedis == null) {
 192             return result;
 193         }
 194         boolean broken = false;
 195         try {
 196             result = shardedJedis.set(key, value);
 197         } catch (Exception e) {
 198             log.error(e.getMessage(), e);
 199             broken = true;
 200         } finally {
 201             redisDataSource.returnResource(shardedJedis, broken);
 202         }
 203         return result;
 204     }
 205 
 206     /**
 207      * 獲取單個值
 208      * 
 209      * @param key
 210      * @return
 211      */
 212     public String get(String key) {
 213         String result = null;
 214         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 215         if (shardedJedis == null) {
 216             return result;
 217         }
 218 
 219         boolean broken = false;
 220         try {
 221             result = shardedJedis.get(key);
 222         } catch (Exception e) {
 223             log.error(e.getMessage(), e);
 224             broken = true;
 225         } finally {
 226             redisDataSource.returnResource(shardedJedis, broken);
 227         }
 228         return result;
 229     }
 230 
 231     public Boolean exists(String key) {
 232         Boolean result = false;
 233         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 234         if (shardedJedis == null) {
 235             return result;
 236         }
 237         boolean broken = false;
 238         try {
 239             result = shardedJedis.exists(key);
 240         } catch (Exception e) {
 241             log.error(e.getMessage(), e);
 242             broken = true;
 243         } finally {
 244             redisDataSource.returnResource(shardedJedis, broken);
 245         }
 246         return result;
 247     }
 248 
 249     public String type(String key) {
 250         String result = null;
 251         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 252         if (shardedJedis == null) {
 253             return result;
 254         }
 255         boolean broken = false;
 256         try {
 257             result = shardedJedis.type(key);
 258 
 259         } catch (Exception e) {
 260             log.error(e.getMessage(), e);
 261             broken = true;
 262         } finally {
 263             redisDataSource.returnResource(shardedJedis, broken);
 264         }
 265         return result;
 266     }
 267 
 268     /**
 269      * 在某段時間後實現
 270      * 
 271      * @param key
 272      * @param unixTime
 273      * @return
 274      */
 275     public Long expire(String key, int seconds) {
 276         Long result = null;
 277         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 278         if (shardedJedis == null) {
 279             return result;
 280         }
 281         boolean broken = false;
 282         try {
 283             result = shardedJedis.expire(key, seconds);
 284 
 285         } catch (Exception e) {
 286             log.error(e.getMessage(), e);
 287             broken = true;
 288         } finally {
 289             redisDataSource.returnResource(shardedJedis, broken);
 290         }
 291         return result;
 292     }
 293 
 294     /**
 295      * 在某個時間點失效
 296      * 
 297      * @param key
 298      * @param unixTime
 299      * @return
 300      */
 301     public Long expireAt(String key, long unixTime) {
 302         Long result = null;
 303         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 304         if (shardedJedis == null) {
 305             return result;
 306         }
 307         boolean broken = false;
 308         try {
 309             result = shardedJedis.expireAt(key, unixTime);
 310 
 311         } catch (Exception e) {
 312             log.error(e.getMessage(), e);
 313             broken = true;
 314         } finally {
 315             redisDataSource.returnResource(shardedJedis, broken);
 316         }
 317         return result;
 318     }
 319 
 320     public Long ttl(String key) {
 321         Long result = null;
 322         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 323         if (shardedJedis == null) {
 324             return result;
 325         }
 326         boolean broken = false;
 327         try {
 328             result = shardedJedis.ttl(key);
 329 
 330         } catch (Exception e) {
 331             log.error(e.getMessage(), e);
 332             broken = true;
 333         } finally {
 334             redisDataSource.returnResource(shardedJedis, broken);
 335         }
 336         return result;
 337     }
 338 
 339     public boolean setbit(String key, long offset, boolean value) {
 340 
 341         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 342         boolean result = false;
 343         if (shardedJedis == null) {
 344             return result;
 345         }
 346         boolean broken = false;
 347         try {
 348             result = shardedJedis.setbit(key, offset, value);
 349         } catch (Exception e) {
 350             log.error(e.getMessage(), e);
 351             broken = true;
 352         } finally {
 353             redisDataSource.returnResource(shardedJedis, broken);
 354         }
 355         return result;
 356     }
 357 
 358     public boolean getbit(String key, long offset) {
 359         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 360         boolean result = false;
 361         if (shardedJedis == null) {
 362             return result;
 363         }
 364         boolean broken = false;
 365 
 366         try {
 367             result = shardedJedis.getbit(key, offset);
 368         } catch (Exception e) {
 369             log.error(e.getMessage(), e);
 370             broken = true;
 371         } finally {
 372             redisDataSource.returnResource(shardedJedis, broken);
 373         }
 374         return result;
 375     }
 376 
 377     public long setrange(String key, long offset, String value) {
 378         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 379         long result = 0;
 380         if (shardedJedis == null) {
 381             return result;
 382         }
 383         boolean broken = false;
 384         try {
 385             result = shardedJedis.setrange(key, offset, value);
 386         } catch (Exception e) {
 387             log.error(e.getMessage(), e);
 388             broken = true;
 389         } finally {
 390             redisDataSource.returnResource(shardedJedis, broken);
 391         }
 392         return result;
 393     }
 394 
 395     public String getrange(String key, long startOffset, long endOffset) {
 396         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 397         String result = null;
 398         if (shardedJedis == null) {
 399             return result;
 400         }
 401         boolean broken = false;
 402         try {
 403             result = shardedJedis.getrange(key, startOffset, endOffset);
 404 
 405         } catch (Exception e) {
 406             log.error(e.getMessage(), e);
 407             broken = true;
 408         } finally {
 409             redisDataSource.returnResource(shardedJedis, broken);
 410         }
 411         return result;
 412     }
 413 
 414     public String getSet(String key, String value) {
 415         String result = null;
 416         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 417         if (shardedJedis == null) {
 418             return result;
 419         }
 420         boolean broken = false;
 421         try {
 422             result = shardedJedis.getSet(key, value);
 423         } catch (Exception e) {
 424             log.error(e.getMessage(), e);
 425             broken = true;
 426         } finally {
 427             redisDataSource.returnResource(shardedJedis, broken);
 428         }
 429         return result;
 430     }
 431 
 432     public Long setnx(String key, String value) {
 433         Long result = null;
 434         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 435         if (shardedJedis == null) {
 436             return result;
 437         }
 438         boolean broken = false;
 439         try {
 440             result = shardedJedis.setnx(key, value);
 441         } catch (Exception e) {
 442             log.error(e.getMessage(), e);
 443             broken = true;
 444         } finally {
 445             redisDataSource.returnResource(shardedJedis, broken);
 446         }
 447         return result;
 448     }
 449     
 450     public Long setnx(String key, String value, int seconds) {
 451         Long result = null;
 452         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 453         if (shardedJedis == null) {
 454             return result;
 455         }
 456         boolean broken = false;
 457         try {
 458             result = shardedJedis.setnx(key, value);
 459             if(result>0){
 460                 shardedJedis.expire(key, seconds);
 461             }
 462         } catch (Exception e) {
 463             log.error(e.getMessage(), e);
 464             broken = true;
 465         } finally {
 466             redisDataSource.returnResource(shardedJedis, broken);
 467         }
 468         return result;
 469     }
 470 
 471     public String setex(String key, int seconds, String value) {
 472         String result = null;
 473         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 474         if (shardedJedis == null) {
 475             return result;
 476         }
 477         boolean broken = false;
 478         try {
 479             result = shardedJedis.setex(key, seconds, value);
 480 
 481         } catch (Exception e) {
 482             log.error(e.getMessage(), e);
 483             broken = true;
 484         } finally {
 485             redisDataSource.returnResource(shardedJedis, broken);
 486         }
 487         return result;
 488     }
 489 
 490     public Long decrBy(String key, long integer) {
 491         Long result = null;
 492         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 493         if (shardedJedis == null) {
 494             return result;
 495         }
 496         boolean broken = false;
 497         try {
 498             result = shardedJedis.decrBy(key, integer);
 499 
 500         } catch (Exception e) {
 501             log.error(e.getMessage(), e);
 502             broken = true;
 503         } finally {
 504             redisDataSource.returnResource(shardedJedis, broken);
 505         }
 506         return result;
 507     }
 508 
 509     public Long decr(String key) {
 510         Long result = null;
 511         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 512         if (shardedJedis == null) {
 513             return result;
 514         }
 515         boolean broken = false;
 516         try {
 517             result = shardedJedis.decr(key);
 518 
 519         } catch (Exception e) {
 520             log.error(e.getMessage(), e);
 521             broken = true;
 522         } finally {
 523             redisDataSource.returnResource(shardedJedis, broken);
 524         }
 525         return result;
 526     }
 527 
 528     public Long incrBy(String key, long integer) {
 529         Long result = null;
 530         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 531         if (shardedJedis == null) {
 532             return result;
 533         }
 534         boolean broken = false;
 535         try {
 536             result = shardedJedis.incrBy(key, integer);
 537 
 538         } catch (Exception e) {
 539             log.error(e.getMessage(), e);
 540             broken = true;
 541         } finally {
 542             redisDataSource.returnResource(shardedJedis, broken);
 543         }
 544         return result;
 545     }
 546 
 547     public Long incr(String key) {
 548         Long result = null;
 549         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 550         if (shardedJedis == null) {
 551             return result;
 552         }
 553         boolean broken = false;
 554         try {
 555             result = shardedJedis.incr(key);
 556 
 557         } catch (Exception e) {
 558             log.error(e.getMessage(), e);
 559             broken = true;
 560         } finally {
 561             redisDataSource.returnResource(shardedJedis, broken);
 562         }
 563         return result;
 564     }
 565 
 566     public Long append(String key, String value) {
 567         Long result = null;
 568         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 569         if (shardedJedis == null) {
 570             return result;
 571         }
 572         boolean broken = false;
 573         try {
 574             result = shardedJedis.append(key, value);
 575 
 576         } catch (Exception e) {
 577             log.error(e.getMessage(), e);
 578             broken = true;
 579         } finally {
 580             redisDataSource.returnResource(shardedJedis, broken);
 581         }
 582         return result;
 583     }
 584 
 585     public String substr(String key, int start, int end) {
 586         String result = null;
 587         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 588         if (shardedJedis == null) {
 589             return result;
 590         }
 591         boolean broken = false;
 592         try {
 593             result = shardedJedis.substr(key, start, end);
 594 
 595         } catch (Exception e) {
 596             log.error(e.getMessage(), e);
 597             broken = true;
 598         } finally {
 599             redisDataSource.returnResource(shardedJedis, broken);
 600         }
 601         return result;
 602     }
 603 
 604     public Long hset(String key, String field, String value) {
 605         Long result = null;
 606         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 607         if (shardedJedis == null) {
 608             return result;
 609         }
 610         boolean broken = false;
 611         try {
 612             result = shardedJedis.hset(key, field, value);
 613 
 614         } catch (Exception e) {
 615             log.error(e.getMessage(), e);
 616             broken = true;
 617         } finally {
 618             redisDataSource.returnResource(shardedJedis, broken);
 619         }
 620         return result;
 621     }
 622 
 623     public String hget(String key, String field) {
 624         String result = null;
 625         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 626         if (shardedJedis == null) {
 627             return result;
 628         }
 629         boolean broken = false;
 630         try {
 631             result = shardedJedis.hget(key, field);
 632 
 633         } catch (Exception e) {
 634             log.error(e.getMessage(), e);
 635             broken = true;
 636         } finally {
 637             redisDataSource.returnResource(shardedJedis, broken);
 638         }
 639         return result;
 640     }
 641 
 642     public Long hsetnx(String key, String field, String value) {
 643         Long result = null;
 644         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 645         if (shardedJedis == null) {
 646             return result;
 647         }
 648         boolean broken = false;
 649         try {
 650             result = shardedJedis.hsetnx(key, field, value);
 651 
 652         } catch (Exception e) {
 653             log.error(e.getMessage(), e);
 654             broken = true;
 655         } finally {
 656             redisDataSource.returnResource(shardedJedis, broken);
 657         }
 658         return result;
 659     }
 660 
 661     public String hmset(String key, Map<String, String> hash) {
 662         String result = null;
 663         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 664         if (shardedJedis == null) {
 665             return result;
 666         }
 667         boolean broken = false;
 668         try {
 669             result = shardedJedis.hmset(key, hash);
 670 
 671         } catch (Exception e) {
 672             log.error(e.getMessage(), e);
 673             broken = true;
 674         } finally {
 675             redisDataSource.returnResource(shardedJedis, broken);
 676         }
 677         return result;
 678     }
 679 
 680     public List<String> hmget(String key, String... fields) {
 681         List<String> result = null;
 682         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 683         if (shardedJedis == null) {
 684             return result;
 685         }
 686         boolean broken = false;
 687         try {
 688             result = shardedJedis.hmget(key, fields);
 689 
 690         } catch (Exception e) {
 691             log.error(e.getMessage(), e);
 692             broken = true;
 693         } finally {
 694             redisDataSource.returnResource(shardedJedis, broken);
 695         }
 696         return result;
 697     }
 698 
 699     public Long hincrBy(String key, String field, long value) {
 700         Long result = null;
 701         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 702         if (shardedJedis == null) {
 703             return result;
 704         }
 705         boolean broken = false;
 706         try {
 707             result = shardedJedis.hincrBy(key, field, value);
 708 
 709         } catch (Exception e) {
 710             log.error(e.getMessage(), e);
 711             broken = true;
 712         } finally {
 713             redisDataSource.returnResource(shardedJedis, broken);
 714         }
 715         return result;
 716     }
 717 
 718     public Boolean hexists(String key, String field) {
 719         Boolean result = false;
 720         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 721         if (shardedJedis == null) {
 722             return result;
 723         }
 724         boolean broken = false;
 725         try {
 726             result = shardedJedis.hexists(key, field);
 727 
 728         } catch (Exception e) {
 729             log.error(e.getMessage(), e);
 730             broken = true;
 731         } finally {
 732             redisDataSource.returnResource(shardedJedis, broken);
 733         }
 734         return result;
 735     }
 736 
 737     public Long del(String key) {
 738         Long result = null;
 739         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 740         if (shardedJedis == null) {
 741             return result;
 742         }
 743         boolean broken = false;
 744         try {
 745             result = shardedJedis.del(key);
 746 
 747         } catch (Exception e) {
 748             log.error(e.getMessage(), e);
 749             broken = true;
 750         } finally {
 751             redisDataSource.returnResource(shardedJedis, broken);
 752         }
 753         return result;
 754     }
 755 
 756     public Long hdel(String key, String field) {
 757         Long result = null;
 758         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 759         if (shardedJedis == null) {
 760             return result;
 761         }
 762         boolean broken = false;
 763         try {
 764             result = shardedJedis.hdel(key, field);
 765 
 766         } catch (Exception e) {
 767             log.error(e.getMessage(), e);
 768             broken = true;
 769         } finally {
 770             redisDataSource.returnResource(shardedJedis, broken);
 771         }
 772         return result;
 773     }
 774 
 775     public Long hlen(String key) {
 776         Long result = null;
 777         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 778         if (shardedJedis == null) {
 779             return result;
 780         }
 781         boolean broken = false;
 782         try {
 783             result = shardedJedis.hlen(key);
 784 
 785         } catch (Exception e) {
 786             log.error(e.getMessage(), e);
 787             broken = true;
 788         } finally {
 789             redisDataSource.returnResource(shardedJedis, broken);
 790         }
 791         return result;
 792     }
 793 
 794     public Set<String> hkeys(String key) {
 795         Set<String> result = null;
 796         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 797         if (shardedJedis == null) {
 798             return result;
 799         }
 800         boolean broken = false;
 801         try {
 802             result = shardedJedis.hkeys(key);
 803 
 804         } catch (Exception e) {
 805             log.error(e.getMessage(), e);
 806             broken = true;
 807         } finally {
 808             redisDataSource.returnResource(shardedJedis, broken);
 809         }
 810         return result;
 811     }
 812 
 813     public List<String> hvals(String key) {
 814         List<String> result = null;
 815         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 816         if (shardedJedis == null) {
 817             return result;
 818         }
 819         boolean broken = false;
 820         try {
 821             result = shardedJedis.hvals(key);
 822 
 823         } catch (Exception e) {
 824             log.error(e.getMessage(), e);
 825             broken = true;
 826         } finally {
 827             redisDataSource.returnResource(shardedJedis, broken);
 828         }
 829         return result;
 830     }
 831 
 832     public Map<String, String> hgetAll(String key) {
 833         Map<String, String> result = null;
 834         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 835         if (shardedJedis == null) {
 836             return result;
 837         }
 838         boolean broken = false;
 839         try {
 840             result = shardedJedis.hgetAll(key);
 841 
 842         } catch (Exception e) {
 843             log.error(e.getMessage(), e);
 844             broken = true;
 845         } finally {
 846             redisDataSource.returnResource(shardedJedis, broken);
 847         }
 848         return result;
 849     }
 850 
 851     // ================list ====== l表示 list或 left, r表示right====================
 852     public Long rpush(String key, String string) {
 853         Long result = null;
 854         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 855         if (shardedJedis == null) {
 856             return result;
 857         }
 858         boolean broken = false;
 859         try {
 860             result = shardedJedis.rpush(key, string);
 861 
 862         } catch (Exception e) {
 863             log.error(e.getMessage(), e);
 864             broken = true;
 865         } finally {
 866             redisDataSource.returnResource(shardedJedis, broken);
 867         }
 868         return result;
 869     }
 870 
 871     public Long lpush(String key, String string) {
 872         Long result = null;
 873         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 874         if (shardedJedis == null) {
 875             return result;
 876         }
 877         boolean broken = false;
 878         try {
 879             result = shardedJedis.lpush(key, string);
 880 
 881         } catch (Exception e) {
 882             log.error(e.getMessage(), e);
 883             broken = true;
 884         } finally {
 885             redisDataSource.returnResource(shardedJedis, broken);
 886         }
 887         return result;
 888     }
 889 
 890     public Long llen(String key) {
 891         Long result = null;
 892         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 893         if (shardedJedis == null) {
 894             return result;
 895         }
 896         boolean broken = false;
 897         try {
 898             result = shardedJedis.llen(key);
 899 
 900         } catch (Exception e) {
 901             log.error(e.getMessage(), e);
 902             broken = true;
 903         } finally {
 904             redisDataSource.returnResource(shardedJedis, broken);
 905         }
 906         return result;
 907     }
 908 
 909     public List<String> lrange(String key, long start, long end) {
 910         List<String> result = null;
 911         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 912         if (shardedJedis == null) {
 913             return result;
 914         }
 915         boolean broken = false;
 916         try {
 917             result = shardedJedis.lrange(key, start, end);
 918 
 919         } catch (Exception e) {
 920             log.error(e.getMessage(), e);
 921             broken = true;
 922         } finally {
 923             redisDataSource.returnResource(shardedJedis, broken);
 924         }
 925         return result;
 926     }
 927 
 928     public String ltrim(String key, long start, long end) {
 929         String result = null;
 930         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 931         if (shardedJedis == null) {
 932             return result;
 933         }
 934         boolean broken = false;
 935         try {
 936             result = shardedJedis.ltrim(key, start, end);
 937 
 938         } catch (Exception e) {
 939             log.error(e.getMessage(), e);
 940             broken = true;
 941         } finally {
 942             redisDataSource.returnResource(shardedJedis, broken);
 943         }
 944         return result;
 945     }
 946 
 947     public String lindex(String key, long index) {
 948         String result = null;
 949         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 950         if (shardedJedis == null) {
 951             return result;
 952         }
 953         boolean broken = false;
 954         try {
 955             result = shardedJedis.lindex(key, index);
 956 
 957         } catch (Exception e) {
 958             log.error(e.getMessage(), e);
 959             broken = true;
 960         } finally {
 961             redisDataSource.returnResource(shardedJedis, broken);
 962         }
 963         return result;
 964     }
 965 
 966     public String lset(String key, long index, String value) {
 967         String result = null;
 968         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 969         if (shardedJedis == null) {
 970             return result;
 971         }
 972         boolean broken = false;
 973         try {
 974             result = shardedJedis.lset(key, index, value);
 975 
 976         } catch (Exception e) {
 977             log.error(e.getMessage(), e);
 978             broken = true;
 979         } finally {
 980             redisDataSource.returnResource(shardedJedis, broken);
 981         }
 982         return result;
 983     }
 984 
 985     public Long lrem(String key, long count, String value) {
 986         Long result = null;
 987         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
 988         if (shardedJedis == null) {
 989             return result;
 990         }
 991         boolean broken = false;
 992         try {
 993             result = shardedJedis.lrem(key, count, value);
 994 
 995         } catch (Exception e) {
 996             log.error(e.getMessage(), e);
 997             broken = true;
 998         } finally {
 999             redisDataSource.returnResource(shardedJedis, broken);
1000         }
1001         return result;
1002     }
1003 
1004     public String lpop(String key) {
1005         String result = null;
1006         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1007         if (shardedJedis == null) {
1008             return result;
1009         }
1010         boolean broken = false;
1011         try {
1012             result = shardedJedis.lpop(key);
1013 
1014         } catch (Exception e) {
1015             log.error(e.getMessage(), e);
1016             broken = true;
1017         } finally {
1018             redisDataSource.returnResource(shardedJedis, broken);
1019         }
1020         return result;
1021     }
1022 
1023     public String rpop(String key) {
1024         String result = null;
1025         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1026         if (shardedJedis == null) {
1027             return result;
1028         }
1029         boolean broken = false;
1030         try {
1031             result = shardedJedis.rpop(key);
1032 
1033         } catch (Exception e) {
1034             log.error(e.getMessage(), e);
1035             broken = true;
1036         } finally {
1037             redisDataSource.returnResource(shardedJedis, broken);
1038         }
1039         return result;
1040     }
1041 
1042     //return 1 add a not exist value ,
1043     //return 0 add a exist value
1044     public Long sadd(String key, String member) {
1045         Long result = null;
1046         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1047         if (shardedJedis == null) {
1048             return result;
1049         }
1050         boolean broken = false;
1051         try {
1052             result = shardedJedis.sadd(key, member);
1053 
1054         } catch (Exception e) {
1055             log.error(e.getMessage(), e);
1056             broken = true;
1057         } finally {
1058             redisDataSource.returnResource(shardedJedis, broken);
1059         }
1060         return result;
1061     }
1062 
1063     public Set<String> smembers(String key) {
1064         Set<String> result = null;
1065         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1066         if (shardedJedis == null) {
1067             return result;
1068         }
1069         boolean broken = false;
1070         try {
1071             result = shardedJedis.smembers(key);
1072 
1073         } catch (Exception e) {
1074             log.error(e.getMessage(), e);
1075             broken = true;
1076         } finally {
1077             redisDataSource.returnResource(shardedJedis, broken);
1078         }
1079         return result;
1080     }
1081 
1082     public Long srem(String key, String member) {
1083         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1084 
1085         Long result = null;
1086         if (shardedJedis == null) {
1087             return result;
1088         }
1089         boolean broken = false;
1090         try {
1091             result = shardedJedis.srem(key, member);
1092         } catch (Exception e) {
1093             log.error(e.getMessage(), e);
1094             broken = true;
1095         } finally {
1096             redisDataSource.returnResource(shardedJedis, broken);
1097         }
1098         return result;
1099     }
1100 
1101     public String spop(String key) {
1102         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1103         String result = null;
1104         if (shardedJedis == null) {
1105             return result;
1106         }
1107         boolean broken = false;
1108         try {
1109             result = shardedJedis.spop(key);
1110         } catch (Exception e) {
1111             log.error(e.getMessage(), e);
1112             broken = true;
1113         } finally {
1114             redisDataSource.returnResource(shardedJedis, broken);
1115         }
1116         return result;
1117     }
1118 
1119     public Long scard(String key) {
1120         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1121         Long result = null;
1122         if (shardedJedis == null) {
1123             return result;
1124         }
1125         boolean broken = false;
1126         try {
1127             result = shardedJedis.scard(key);
1128 
1129         } catch (Exception e) {
1130             log.error(e.getMessage(), e);
1131             broken = true;
1132         } finally {
1133             redisDataSource.returnResource(shardedJedis, broken);
1134         }
1135         return result;
1136     }
1137 
1138     public Boolean sismember(String key, String member) {
1139         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1140         Boolean result = null;
1141         if (shardedJedis == null) {
1142             return result;
1143         }
1144         boolean broken = false;
1145         try {
1146             result = shardedJedis.sismember(key, member);
1147         } catch (Exception e) {
1148             log.error(e.getMessage(), e);
1149             broken = true;
1150         } finally {
1151             redisDataSource.returnResource(shardedJedis, broken);
1152         }
1153         return result;
1154     }
1155 
1156     public String srandmember(String key) {
1157         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1158         String result = null;
1159         if (shardedJedis == null) {
1160             return result;
1161         }
1162         boolean broken = false;
1163         try {
1164             result = shardedJedis.srandmember(key);
1165         } catch (Exception e) {
1166             log.error(e.getMessage(), e);
1167             broken = true;
1168         } finally {
1169             redisDataSource.returnResource(shardedJedis, broken);
1170         }
1171         return result;
1172     }
1173 
1174     public Long zadd(String key, double score, String member) {
1175         Long result = null;
1176         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1177         if (shardedJedis == null) {
1178             return result;
1179         }
1180         boolean broken = false;
1181         try {
1182             result = shardedJedis.zadd(key, score, member);
1183         } catch (Exception e) {
1184             log.error(e.getMessage(), e);
1185             broken = true;
1186         } finally {
1187             redisDataSource.returnResource(shardedJedis, broken);
1188         }
1189         return result;
1190     }
1191 
1192     public Set<String> zrange(String key, int start, int end) {
1193         Set<String> result = null;
1194         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1195         if (shardedJedis == null) {
1196             return result;
1197         }
1198         boolean broken = false;
1199         try {
1200             result = shardedJedis.zrange(key, start, end);
1201         } catch (Exception e) {
1202             log.error(e.getMessage(), e);
1203             broken = true;
1204         } finally {
1205             redisDataSource.returnResource(shardedJedis, broken);
1206         }
1207         return result;
1208     }
1209 
1210     public Long zrem(String key, String member) {
1211         Long result = null;
1212         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1213         if (shardedJedis == null) {
1214             return result;
1215         }
1216         boolean broken = false;
1217         try {
1218             result = shardedJedis.zrem(key, member);
1219         } catch (Exception e) {
1220             log.error(e.getMessage(), e);
1221             broken = true;
1222         } finally {
1223             redisDataSource.returnResource(shardedJedis, broken);
1224         }
1225         return result;
1226     }
1227 
1228     public Double zincrby(String key, double score, String member) {
1229         Double result = null;
1230         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1231         if (shardedJedis == null) {
1232             return result;
1233         }
1234         boolean broken = false;
1235         try {
1236 
1237             result = shardedJedis.zincrby(key, score, member);
1238 
1239         } catch (Exception e) {
1240             log.error(e.getMessage(), e);
1241             broken = true;
1242         } finally {
1243             redisDataSource.returnResource(shardedJedis, broken);
1244         }
1245         return result;
1246     }
1247 
1248     public Long zrank(String key, String member) {
1249         Long result = null;
1250         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1251         if (shardedJedis == null) {
1252             return result;
1253         }
1254         boolean broken = false;
1255         try {
1256 
1257             result = shardedJedis.zrank(key, member);
1258 
1259         } catch (Exception e) {
1260             log.error(e.getMessage(), e);
1261             broken = true;
1262         } finally {
1263             redisDataSource.returnResource(shardedJedis, broken);
1264         }
1265         return result;
1266     }
1267 
1268     public Long zrevrank(String key, String member) {
1269         Long result = null;
1270         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1271         if (shardedJedis == null) {
1272             return result;
1273         }
1274         boolean broken = false;
1275         try {
1276 
1277             result = shardedJedis.zrevrank(key, member);
1278 
1279         } catch (Exception e) {
1280             log.error(e.getMessage(), e);
1281             broken = true;
1282         } finally {
1283             redisDataSource.returnResource(shardedJedis, broken);
1284         }
1285         return result;
1286     }
1287 
1288     public Set<String> zrevrange(String key, int start, int end) {
1289         Set<String> result = null;
1290         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1291         if (shardedJedis == null) {
1292             return result;
1293         }
1294         boolean broken = false;
1295         try {
1296 
1297             result = shardedJedis.zrevrange(key, start, end);
1298 
1299         } catch (Exception e) {
1300             log.error(e.getMessage(), e);
1301             broken = true;
1302         } finally {
1303             redisDataSource.returnResource(shardedJedis, broken);
1304         }
1305         return result;
1306     }
1307 
1308     public Set<Tuple> zrangeWithScores(String key, int start, int end) {
1309         Set<Tuple> result = null;
1310         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1311         if (shardedJedis == null) {
1312             return result;
1313         }
1314         boolean broken = false;
1315         try {
1316 
1317             result = shardedJedis.zrangeWithScores(key, start, end);
1318 
1319         } catch (Exception e) {
1320             log.error(e.getMessage(), e);
1321             broken = true;
1322         } finally {
1323             redisDataSource.returnResource(shardedJedis, broken);
1324         }
1325         return result;
1326     }
1327 
1328     public Set<Tuple> zrevrangeWithScores(String key, int start, int end) {
1329         Set<Tuple> result = null;
1330         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1331         if (shardedJedis == null) {
1332             return result;
1333         }
1334         boolean broken = false;
1335         try {
1336 
1337             result = shardedJedis.zrevrangeWithScores(key, start, end);
1338 
1339         } catch (Exception e) {
1340             log.error(e.getMessage(), e);
1341             broken = true;
1342         } finally {
1343             redisDataSource.returnResource(shardedJedis, broken);
1344         }
1345         return result;
1346     }
1347 
1348     public Long zcard(String key) {
1349         Long result = null;
1350         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1351         if (shardedJedis == null) {
1352             return result;
1353         }
1354         boolean broken = false;
1355         try {
1356 
1357             result = shardedJedis.zcard(key);
1358 
1359         } catch (Exception e) {
1360             log.error(e.getMessage(), e);
1361             broken = true;
1362         } finally {
1363             redisDataSource.returnResource(shardedJedis, broken);
1364         }
1365         return result;
1366     }
1367 
1368     public Double zscore(String key, String member) {
1369         Double result = null;
1370         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1371         if (shardedJedis == null) {
1372             return result;
1373         }
1374         boolean broken = false;
1375         try {
1376 
1377             result = shardedJedis.zscore(key, member);
1378 
1379         } catch (Exception e) {
1380             log.error(e.getMessage(), e);
1381             broken = true;
1382         } finally {
1383             redisDataSource.returnResource(shardedJedis, broken);
1384         }
1385         return result;
1386     }
1387 
1388     public List<String> sort(String key) {
1389         List<String> result = null;
1390         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1391         if (shardedJedis == null) {
1392             return result;
1393         }
1394         boolean broken = false;
1395         try {
1396 
1397             result = shardedJedis.sort(key);
1398 
1399         } catch (Exception e) {
1400             log.error(e.getMessage(), e);
1401             broken = true;
1402         } finally {
1403             redisDataSource.returnResource(shardedJedis, broken);
1404         }
1405         return result;
1406     }
1407 
1408     public List<String> sort(String key, SortingParams sortingParameters) {
1409         List<String> result = null;
1410         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1411         if (shardedJedis == null) {
1412             return result;
1413         }
1414         boolean broken = false;
1415         try {
1416 
1417             result = shardedJedis.sort(key, sortingParameters);
1418 
1419         } catch (Exception e) {
1420             log.error(e.getMessage(), e);
1421             broken = true;
1422         } finally {
1423             redisDataSource.returnResource(shardedJedis, broken);
1424         }
1425         return result;
1426     }
1427 
1428     public Long zcount(String key, double min, double max) {
1429         Long result = null;
1430         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1431         if (shardedJedis == null) {
1432             return result;
1433         }
1434         boolean broken = false;
1435         try {
1436 
1437             result = shardedJedis.zcount(key, min, max);
1438 
1439         } catch (Exception e) {
1440             log.error(e.getMessage(), e);
1441             broken = true;
1442         } finally {
1443             redisDataSource.returnResource(shardedJedis, broken);
1444         }
1445         return result;
1446     }
1447 
1448     public Set<String> zrangeByScore(String key, double min, double max) {
1449         Set<String> result = null;
1450         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1451         if (shardedJedis == null) {
1452             return result;
1453         }
1454         boolean broken = false;
1455         try {
1456 
1457             result = shardedJedis.zrangeByScore(key, min, max);
1458 
1459         } catch (Exception e) {
1460             log.error(e.getMessage(), e);
1461             broken = true;
1462         } finally {
1463             redisDataSource.returnResource(shardedJedis, broken);
1464         }
1465         return result;
1466     }
1467 
1468     public Set<String> zrevrangeByScore(String key, double max, double min) {
1469         Set<String> result = null;
1470         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1471         if (shardedJedis == null) {
1472             return result;
1473         }
1474         boolean broken = false;
1475         try {
1476 
1477             result = shardedJedis.zrevrangeByScore(key, max, min);
1478 
1479         } catch (Exception e) {
1480             log.error(e.getMessage(), e);
1481             broken = true;
1482         } finally {
1483             redisDataSource.returnResource(shardedJedis, broken);
1484         }
1485         return result;
1486     }
1487 
1488     public Set<String> zrangeByScore(String key, double min, double max, int offset, int count) {
1489         Set<String> result = null;
1490         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1491         if (shardedJedis == null) {
1492             return result;
1493         }
1494         boolean broken = false;
1495         try {
1496 
1497             result = shardedJedis.zrangeByScore(key, min, max, offset, count);
1498 
1499         } catch (Exception e) {
1500             log.error(e.getMessage(), e);
1501             broken = true;
1502         } finally {
1503             redisDataSource.returnResource(shardedJedis, broken);
1504         }
1505         return result;
1506     }
1507 
1508     public Set<String> zrevrangeByScore(String key, double max, double min, int offset, int count) {
1509         Set<String> result = null;
1510         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1511         if (shardedJedis == null) {
1512             return result;
1513         }
1514         boolean broken = false;
1515         try {
1516 
1517             result = shardedJedis.zrevrangeByScore(key, max, min, offset, count);
1518 
1519         } catch (Exception e) {
1520             log.error(e.getMessage(), e);
1521             broken = true;
1522         } finally {
1523             redisDataSource.returnResource(shardedJedis, broken);
1524         }
1525         return result;
1526     }
1527 
1528     public Set<Tuple> zrangeByScoreWithScores(String key, double min, double max) {
1529         Set<Tuple> result = null;
1530         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1531         if (shardedJedis == null) {
1532             return result;
1533         }
1534         boolean broken = false;
1535         try {
1536 
1537             result = shardedJedis.zrangeByScoreWithScores(key, min, max);
1538 
1539         } catch (Exception e) {
1540             log.error(e.getMessage(), e);
1541             broken = true;
1542         } finally {
1543             redisDataSource.returnResource(shardedJedis, broken);
1544         }
1545         return result;
1546     }
1547 
1548     public Set<Tuple> zrevrangeByScoreWithScores(String key, double max, double min) {
1549         Set<Tuple> result = null;
1550         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1551         if (shardedJedis == null) {
1552             return result;
1553         }
1554         boolean broken = false;
1555         try {
1556 
1557             result = shardedJedis.zrevrangeByScoreWithScores(key, max, min);
1558 
1559         } catch (Exception e) {
1560             log.error(e.getMessage(), e);
1561             broken = true;
1562         } finally {
1563             redisDataSource.returnResource(shardedJedis, broken);
1564         }
1565         return result;
1566     }
1567 
1568     public Set<Tuple> zrangeByScoreWithScores(String key, double min, double max, int offset, int count) {
1569         Set<Tuple> result = null;
1570         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1571         if (shardedJedis == null) {
1572             return result;
1573         }
1574         boolean broken = false;
1575         try {
1576 
1577             result = shardedJedis.zrangeByScoreWithScores(key, min, max, offset, count);
1578 
1579         } catch (Exception e) {
1580             log.error(e.getMessage(), e);
1581             broken = true;
1582         } finally {
1583             redisDataSource.returnResource(shardedJedis, broken);
1584         }
1585         return result;
1586     }
1587 
1588     public Set<Tuple> zrevrangeByScoreWithScores(String key, double max, double min, int offset, int count) {
1589         Set<Tuple> result = null;
1590         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1591         if (shardedJedis == null) {
1592             return result;
1593         }
1594         boolean broken = false;
1595         try {
1596 
1597             result = shardedJedis.zrevrangeByScoreWithScores(key, max, min, offset, count);
1598 
1599         } catch (Exception e) {
1600             log.error(e.getMessage(), e);
1601             broken = true;
1602         } finally {
1603             redisDataSource.returnResource(shardedJedis, broken);
1604         }
1605         return result;
1606     }
1607 
1608     public Long zremrangeByRank(String key, int start, int end) {
1609         Long result = null;
1610         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1611         if (shardedJedis == null) {
1612             return result;
1613         }
1614         boolean broken = false;
1615         try {
1616 
1617             result = shardedJedis.zremrangeByRank(key, start, end);
1618 
1619         } catch (Exception e) {
1620             log.error(e.getMessage(), e);
1621             broken = true;
1622         } finally {
1623             redisDataSource.returnResource(shardedJedis, broken);
1624         }
1625         return result;
1626     }
1627 
1628     public Long zremrangeByScore(String key, double start, double end) {
1629         Long result = null;
1630         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1631         if (shardedJedis == null) {
1632             return result;
1633         }
1634         boolean broken = false;
1635         try {
1636 
1637             result = shardedJedis.zremrangeByScore(key, start, end);
1638 
1639         } catch (Exception e) {
1640             log.error(e.getMessage(), e);
1641             broken = true;
1642         } finally {
1643             redisDataSource.returnResource(shardedJedis, broken);
1644         }
1645         return result;
1646     }
1647 
1648     public Long linsert(String key, LIST_POSITION where, String pivot, String value) {
1649         Long result = null;
1650         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1651         if (shardedJedis == null) {
1652             return result;
1653         }
1654         boolean broken = false;
1655         try {
1656 
1657             result = shardedJedis.linsert(key, where, pivot, value);
1658 
1659         } catch (Exception e) {
1660             log.error(e.getMessage(), e);
1661             broken = true;
1662         } finally {
1663             redisDataSource.returnResource(shardedJedis, broken);
1664         }
1665         return result;
1666     }
1667 
1668     public String set(byte[] key, byte[] value) {
1669         String result = null;
1670         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1671         if (shardedJedis == null) {
1672             return result;
1673         }
1674         boolean broken = false;
1675         try {
1676 
1677             result = shardedJedis.set(key, value);
1678 
1679         } catch (Exception e) {
1680             log.error(e.getMessage(), e);
1681             broken = true;
1682         } finally {
1683             redisDataSource.returnResource(shardedJedis, broken);
1684         }
1685         return result;
1686     }
1687 
1688     public byte[] get(byte[] key) {
1689         byte[] result = null;
1690         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1691         if (shardedJedis == null) {
1692             return result;
1693         }
1694         boolean broken = false;
1695         try {
1696 
1697             result = shardedJedis.get(key);
1698 
1699         } catch (Exception e) {
1700             log.error(e.getMessage(), e);
1701             broken = true;
1702         } finally {
1703             redisDataSource.returnResource(shardedJedis, broken);
1704         }
1705         return result;
1706     }
1707 
1708     public Boolean exists(byte[] key) {
1709         Boolean result = false;
1710         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1711         if (shardedJedis == null) {
1712             return result;
1713         }
1714         boolean broken = false;
1715         try {
1716 
1717             result = shardedJedis.exists(key);
1718 
1719         } catch (Exception e) {
1720             log.error(e.getMessage(), e);
1721             broken = true;
1722         } finally {
1723             redisDataSource.returnResource(shardedJedis, broken);
1724         }
1725         return result;
1726     }
1727 
1728     public String type(byte[] key) {
1729         String result = null;
1730         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1731         if (shardedJedis == null) {
1732             return result;
1733         }
1734         boolean broken = false;
1735         try {
1736 
1737             result = shardedJedis.type(key);
1738 
1739         } catch (Exception e) {
1740             log.error(e.getMessage(), e);
1741             broken = true;
1742         } finally {
1743             redisDataSource.returnResource(shardedJedis, broken);
1744         }
1745         return result;
1746     }
1747 
1748     public Long expire(byte[] key, int seconds) {
1749         Long result = null;
1750         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1751         if (shardedJedis == null) {
1752             return result;
1753         }
1754         boolean broken = false;
1755         try {
1756 
1757             result = shardedJedis.expire(key, seconds);
1758 
1759         } catch (Exception e) {
1760             log.error(e.getMessage(), e);
1761             broken = true;
1762         } finally {
1763             redisDataSource.returnResource(shardedJedis, broken);
1764         }
1765         return result;
1766     }
1767 
1768     public Long expireAt(byte[] key, long unixTime) {
1769         Long result = null;
1770         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1771         if (shardedJedis == null) {
1772             return result;
1773         }
1774         boolean broken = false;
1775         try {
1776 
1777             result = shardedJedis.expireAt(key, unixTime);
1778 
1779         } catch (Exception e) {
1780             log.error(e.getMessage(), e);
1781             broken = true;
1782         } finally {
1783             redisDataSource.returnResource(shardedJedis, broken);
1784         }
1785         return result;
1786     }
1787 
1788     public Long ttl(byte[] key) {
1789         Long result = null;
1790         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1791         if (shardedJedis == null) {
1792             return result;
1793         }
1794         boolean broken = false;
1795         try {
1796 
1797             result = shardedJedis.ttl(key);
1798 
1799         } catch (Exception e) {
1800             log.error(e.getMessage(), e);
1801             broken = true;
1802         } finally {
1803             redisDataSource.returnResource(shardedJedis, broken);
1804         }
1805         return result;
1806     }
1807 
1808     public byte[] getSet(byte[] key, byte[] value) {
1809         byte[] result = null;
1810         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1811         if (shardedJedis == null) {
1812             return result;
1813         }
1814         boolean broken = false;
1815         try {
1816 
1817             result = shardedJedis.getSet(key, value);
1818 
1819         } catch (Exception e) {
1820             log.error(e.getMessage(), e);
1821             broken = true;
1822         } finally {
1823             redisDataSource.returnResource(shardedJedis, broken);
1824         }
1825         return result;
1826     }
1827 
1828     public Long setnx(byte[] key, byte[] value) {
1829         Long result = null;
1830         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1831         if (shardedJedis == null) {
1832             return result;
1833         }
1834         boolean broken = false;
1835         try {
1836 
1837             result = shardedJedis.setnx(key, value);
1838 
1839         } catch (Exception e) {
1840             log.error(e.getMessage(), e);
1841             broken = true;
1842         } finally {
1843             redisDataSource.returnResource(shardedJedis, broken);
1844         }
1845         return result;
1846     }
1847 
1848     public String setex(byte[] key, int seconds, byte[] value) {
1849         String result = null;
1850         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1851         if (shardedJedis == null) {
1852             return result;
1853         }
1854         boolean broken = false;
1855         try {
1856 
1857             result = shardedJedis.setex(key, seconds, value);
1858 
1859         } catch (Exception e) {
1860             log.error(e.getMessage(), e);
1861             broken = true;
1862         } finally {
1863             redisDataSource.returnResource(shardedJedis, broken);
1864         }
1865         return result;
1866     }
1867 
1868     public Long decrBy(byte[] key, long integer) {
1869         Long result = null;
1870         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1871         if (shardedJedis == null) {
1872             return result;
1873         }
1874         boolean broken = false;
1875         try {
1876 
1877             result = shardedJedis.decrBy(key, integer);
1878 
1879         } catch (Exception e) {
1880             log.error(e.getMessage(), e);
1881             broken = true;
1882         } finally {
1883             redisDataSource.returnResource(shardedJedis, broken);
1884         }
1885         return result;
1886     }
1887 
1888     public Long decr(byte[] key) {
1889         Long result = null;
1890         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1891         if (shardedJedis == null) {
1892             return result;
1893         }
1894         boolean broken = false;
1895         try {
1896 
1897             result = shardedJedis.decr(key);
1898 
1899         } catch (Exception e) {
1900             log.error(e.getMessage(), e);
1901             broken = true;
1902         } finally {
1903             redisDataSource.returnResource(shardedJedis, broken);
1904         }
1905         return result;
1906     }
1907 
1908     public Long incrBy(byte[] key, long integer) {
1909         Long result = null;
1910         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1911         if (shardedJedis == null) {
1912             return result;
1913         }
1914         boolean broken = false;
1915         try {
1916 
1917             result = shardedJedis.incrBy(key, integer);
1918 
1919         } catch (Exception e) {
1920             log.error(e.getMessage(), e);
1921             broken = true;
1922         } finally {
1923             redisDataSource.returnResource(shardedJedis, broken);
1924         }
1925         return result;
1926     }
1927 
1928     public Long incr(byte[] key) {
1929         Long result = null;
1930         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1931         if (shardedJedis == null) {
1932             return result;
1933         }
1934         boolean broken = false;
1935         try {
1936 
1937             result = shardedJedis.incr(key);
1938 
1939         } catch (Exception e) {
1940             log.error(e.getMessage(), e);
1941             broken = true;
1942         } finally {
1943             redisDataSource.returnResource(shardedJedis, broken);
1944         }
1945         return result;
1946     }
1947 
1948     public Long append(byte[] key, byte[] value) {
1949         Long result = null;
1950         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1951         if (shardedJedis == null) {
1952             return result;
1953         }
1954         boolean broken = false;
1955         try {
1956 
1957             result = shardedJedis.append(key, value);
1958 
1959         } catch (Exception e) {
1960             log.error(e.getMessage(), e);
1961             broken = true;
1962         } finally {
1963             redisDataSource.returnResource(shardedJedis, broken);
1964         }
1965         return result;
1966     }
1967 
1968     public byte[] substr(byte[] key, int start, int end) {
1969         byte[] result = null;
1970         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1971         if (shardedJedis == null) {
1972             return result;
1973         }
1974         boolean broken = false;
1975         try {
1976 
1977             result = shardedJedis.substr(key, start, end);
1978 
1979         } catch (Exception e) {
1980             log.error(e.getMessage(), e);
1981             broken = true;
1982         } finally {
1983             redisDataSource.returnResource(shardedJedis, broken);
1984         }
1985         return result;
1986     }
1987 
1988     public Long hset(byte[] key, byte[] field, byte[] value) {
1989         Long result = null;
1990         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
1991         if (shardedJedis == null) {
1992             return result;
1993         }
1994         boolean broken = false;
1995         try {
1996 
1997             result = shardedJedis.hset(key, field, value);
1998 
1999         } catch (Exception e) {
2000             log.error(e.getMessage(), e);
2001             broken = true;
2002         } finally {
2003             redisDataSource.returnResource(shardedJedis, broken);
2004         }
2005         return result;
2006     }
2007 
2008     public byte[] hget(byte[] key, byte[] field) {
2009         byte[] result = null;
2010         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2011         if (shardedJedis == null) {
2012             return result;
2013         }
2014         boolean broken = false;
2015         try {
2016 
2017             result = shardedJedis.hget(key, field);
2018 
2019         } catch (Exception e) {
2020             log.error(e.getMessage(), e);
2021             broken = true;
2022         } finally {
2023             redisDataSource.returnResource(shardedJedis, broken);
2024         }
2025         return result;
2026     }
2027 
2028     public Long hsetnx(byte[] key, byte[] field, byte[] value) {
2029         Long result = null;
2030         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2031         if (shardedJedis == null) {
2032             return result;
2033         }
2034         boolean broken = false;
2035         try {
2036 
2037             result = shardedJedis.hsetnx(key, field, value);
2038 
2039         } catch (Exception e) {
2040 
2041             log.error(e.getMessage(), e);
2042             broken = true;
2043         } finally {
2044             redisDataSource.returnResource(shardedJedis, broken);
2045         }
2046         return result;
2047     }
2048 
2049     public String hmset(byte[] key, Map<byte[], byte[]> hash) {
2050         String result = null;
2051         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2052         if (shardedJedis == null) {
2053             return result;
2054         }
2055         boolean broken = false;
2056         try {
2057 
2058             result = shardedJedis.hmset(key, hash);
2059 
2060         } catch (Exception e) {
2061 
2062             log.error(e.getMessage(), e);
2063             broken = true;
2064         } finally {
2065             redisDataSource.returnResource(shardedJedis, broken);
2066         }
2067         return result;
2068     }
2069 
2070     public List<byte[]> hmget(byte[] key, byte[]... fields) {
2071         List<byte[]> result = null;
2072         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2073         if (shardedJedis == null) {
2074             return result;
2075         }
2076         boolean broken = false;
2077         try {
2078 
2079             result = shardedJedis.hmget(key, fields);
2080 
2081         } catch (Exception e) {
2082 
2083             log.error(e.getMessage(), e);
2084             broken = true;
2085         } finally {
2086             redisDataSource.returnResource(shardedJedis, broken);
2087         }
2088         return result;
2089     }
2090 
2091     public Long hincrBy(byte[] key, byte[] field, long value) {
2092         Long result = null;
2093         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2094         if (shardedJedis == null) {
2095             return result;
2096         }
2097         boolean broken = false;
2098         try {
2099 
2100             result = shardedJedis.hincrBy(key, field, value);
2101 
2102         } catch (Exception e) {
2103 
2104             log.error(e.getMessage(), e);
2105             broken = true;
2106         } finally {
2107             redisDataSource.returnResource(shardedJedis, broken);
2108         }
2109         return result;
2110     }
2111 
2112     public Boolean hexists(byte[] key, byte[] field) {
2113         Boolean result = false;
2114         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2115         if (shardedJedis == null) {
2116             return result;
2117         }
2118         boolean broken = false;
2119         try {
2120 
2121             result = shardedJedis.hexists(key, field);
2122 
2123         } catch (Exception e) {
2124 
2125             log.error(e.getMessage(), e);
2126             broken = true;
2127         } finally {
2128             redisDataSource.returnResource(shardedJedis, broken);
2129         }
2130         return result;
2131     }
2132 
2133     public Long hdel(byte[] key, byte[] field) {
2134         Long result = null;
2135         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2136         if (shardedJedis == null) {
2137             return result;
2138         }
2139         boolean broken = false;
2140         try {
2141 
2142             result = shardedJedis.hdel(key, field);
2143 
2144         } catch (Exception e) {
2145 
2146             log.error(e.getMessage(), e);
2147             broken = true;
2148         } finally {
2149             redisDataSource.returnResource(shardedJedis, broken);
2150         }
2151         return result;
2152     }
2153 
2154     public Long hlen(byte[] key) {
2155         Long result = null;
2156         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2157         if (shardedJedis == null) {
2158             return result;
2159         }
2160         boolean broken = false;
2161         try {
2162 
2163             result = shardedJedis.hlen(key);
2164 
2165         } catch (Exception e) {
2166 
2167             log.error(e.getMessage(), e);
2168             broken = true;
2169         } finally {
2170             redisDataSource.returnResource(shardedJedis, broken);
2171         }
2172         return result;
2173     }
2174 
2175     public Set<byte[]> hkeys(byte[] key) {
2176         Set<byte[]> result = null;
2177         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2178         if (shardedJedis == null) {
2179             return result;
2180         }
2181         boolean broken = false;
2182         try {
2183 
2184             result = shardedJedis.hkeys(key);
2185 
2186         } catch (Exception e) {
2187 
2188             log.error(e.getMessage(), e);
2189             broken = true;
2190         } finally {
2191             redisDataSource.returnResource(shardedJedis, broken);
2192         }
2193         return result;
2194     }
2195 
2196     public Collection<byte[]> hvals(byte[] key) {
2197         Collection<byte[]> result = null;
2198         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2199         if (shardedJedis == null) {
2200             return result;
2201         }
2202         boolean broken = false;
2203         try {
2204 
2205             result = shardedJedis.hvals(key);
2206 
2207         } catch (Exception e) {
2208 
2209             log.error(e.getMessage(), e);
2210             broken = true;
2211         } finally {
2212             redisDataSource.returnResource(shardedJedis, broken);
2213         }
2214         return result;
2215     }
2216 
2217     public Map<byte[], byte[]> hgetAll(byte[] key) {
2218         Map<byte[], byte[]> result = null;
2219         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2220         if (shardedJedis == null) {
2221             return result;
2222         }
2223         boolean broken = false;
2224         try {
2225 
2226             result = shardedJedis.hgetAll(key);
2227 
2228         } catch (Exception e) {
2229 
2230             log.error(e.getMessage(), e);
2231             broken = true;
2232         } finally {
2233             redisDataSource.returnResource(shardedJedis, broken);
2234         }
2235         return result;
2236     }
2237 
2238     public Long rpush(byte[] key, byte[] string) {
2239         Long result = null;
2240         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2241         if (shardedJedis == null) {
2242             return result;
2243         }
2244         boolean broken = false;
2245         try {
2246 
2247             result = shardedJedis.rpush(key, string);
2248 
2249         } catch (Exception e) {
2250 
2251             log.error(e.getMessage(), e);
2252             broken = true;
2253         } finally {
2254             redisDataSource.returnResource(shardedJedis, broken);
2255         }
2256         return result;
2257     }
2258 
2259     public Long lpush(byte[] key, byte[] string) {
2260         Long result = null;
2261         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2262         if (shardedJedis == null) {
2263             return result;
2264         }
2265         boolean broken = false;
2266         try {
2267 
2268             result = shardedJedis.lpush(key, string);
2269 
2270         } catch (Exception e) {
2271 
2272             log.error(e.getMessage(), e);
2273             broken = true;
2274         } finally {
2275             redisDataSource.returnResource(shardedJedis, broken);
2276         }
2277         return result;
2278     }
2279 
2280     public Long llen(byte[] key) {
2281         Long result = null;
2282         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2283         if (shardedJedis == null) {
2284             return result;
2285         }
2286         boolean broken = false;
2287         try {
2288 
2289             result = shardedJedis.llen(key);
2290 
2291         } catch (Exception e) {
2292 
2293             log.error(e.getMessage(), e);
2294             broken = true;
2295         } finally {
2296             redisDataSource.returnResource(shardedJedis, broken);
2297         }
2298         return result;
2299     }
2300 
2301     public List<byte[]> lrange(byte[] key, int start, int end) {
2302         List<byte[]> result = null;
2303         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2304         if (shardedJedis == null) {
2305             return result;
2306         }
2307         boolean broken = false;
2308         try {
2309 
2310             result = shardedJedis.lrange(key, start, end);
2311 
2312         } catch (Exception e) {
2313 
2314             log.error(e.getMessage(), e);
2315             broken = true;
2316         } finally {
2317             redisDataSource.returnResource(shardedJedis, broken);
2318         }
2319         return result;
2320     }
2321 
2322     public String ltrim(byte[] key, int start, int end) {
2323         String result = null;
2324         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2325         if (shardedJedis == null) {
2326             return result;
2327         }
2328         boolean broken = false;
2329         try {
2330 
2331             result = shardedJedis.ltrim(key, start, end);
2332 
2333         } catch (Exception e) {
2334             log.error(e.getMessage(), e);
2335             broken = true;
2336         } finally {
2337             redisDataSource.returnResource(shardedJedis, broken);
2338         }
2339         return result;
2340     }
2341 
2342     public byte[] lindex(byte[] key, int index) {
2343         byte[] result = null;
2344         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2345         if (shardedJedis == null) {
2346             return result;
2347         }
2348         boolean broken = false;
2349         try {
2350 
2351             result = shardedJedis.lindex(key, index);
2352 
2353         } catch (Exception e) {
2354 
2355             log.error(e.getMessage(), e);
2356             broken = true;
2357         } finally {
2358             redisDataSource.returnResource(shardedJedis, broken);
2359         }
2360         return result;
2361     }
2362 
2363     public String lset(byte[] key, int index, byte[] value) {
2364         String result = null;
2365         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2366         if (shardedJedis == null) {
2367             return result;
2368         }
2369         boolean broken = false;
2370         try {
2371 
2372             result = shardedJedis.lset(key, index, value);
2373 
2374         } catch (Exception e) {
2375 
2376             log.error(e.getMessage(), e);
2377             broken = true;
2378         } finally {
2379             redisDataSource.returnResource(shardedJedis, broken);
2380         }
2381         return result;
2382     }
2383 
2384     public Long lrem(byte[] key, int count, byte[] value) {
2385         Long result = null;
2386         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2387         if (shardedJedis == null) {
2388             return result;
2389         }
2390         boolean broken = false;
2391         try {
2392 
2393             result = shardedJedis.lrem(key, count, value);
2394 
2395         } catch (Exception e) {
2396 
2397             log.error(e.getMessage(), e);
2398             broken = true;
2399         } finally {
2400             redisDataSource.returnResource(shardedJedis, broken);
2401         }
2402         return result;
2403     }
2404 
2405     public byte[] lpop(byte[] key) {
2406         byte[] result = null;
2407         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2408         if (shardedJedis == null) {
2409             return result;
2410         }
2411         boolean broken = false;
2412         try {
2413 
2414             result = shardedJedis.lpop(key);
2415 
2416         } catch (Exception e) {
2417 
2418             log.error(e.getMessage(), e);
2419             broken = true;
2420         } finally {
2421             redisDataSource.returnResource(shardedJedis, broken);
2422         }
2423         return result;
2424     }
2425 
2426     public byte[] rpop(byte[] key) {
2427         byte[] result = null;
2428         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2429         if (shardedJedis == null) {
2430             return result;
2431         }
2432         boolean broken = false;
2433         try {
2434 
2435             result = shardedJedis.rpop(key);
2436 
2437         } catch (Exception e) {
2438 
2439             log.error(e.getMessage(), e);
2440             broken = true;
2441         } finally {
2442             redisDataSource.returnResource(shardedJedis, broken);
2443         }
2444         return result;
2445     }
2446 
2447     public Long sadd(byte[] key, byte[] member) {
2448         Long result = null;
2449         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2450         if (shardedJedis == null) {
2451             return result;
2452         }
2453         boolean broken = false;
2454         try {
2455 
2456             result = shardedJedis.sadd(key, member);
2457 
2458         } catch (Exception e) {
2459 
2460             log.error(e.getMessage(), e);
2461             broken = true;
2462         } finally {
2463             redisDataSource.returnResource(shardedJedis, broken);
2464         }
2465         return result;
2466     }
2467 
2468     public Set<byte[]> smembers(byte[] key) {
2469         Set<byte[]> result = null;
2470         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2471         if (shardedJedis == null) {
2472             return result;
2473         }
2474         boolean broken = false;
2475         try {
2476 
2477             result = shardedJedis.smembers(key);
2478 
2479         } catch (Exception e) {
2480 
2481             log.error(e.getMessage(), e);
2482             broken = true;
2483         } finally {
2484             redisDataSource.returnResource(shardedJedis, broken);
2485         }
2486         return result;
2487     }
2488 
2489     public Long srem(byte[] key, byte[] member) {
2490         Long result = null;
2491         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2492         if (shardedJedis == null) {
2493             return result;
2494         }
2495         boolean broken = false;
2496         try {
2497 
2498             result = shardedJedis.srem(key, member);
2499 
2500         } catch (Exception e) {
2501 
2502             log.error(e.getMessage(), e);
2503             broken = true;
2504         } finally {
2505             redisDataSource.returnResource(shardedJedis, broken);
2506         }
2507         return result;
2508     }
2509 
2510     public byte[] spop(byte[] key) {
2511         byte[] result = null;
2512         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2513         if (shardedJedis == null) {
2514             return result;
2515         }
2516         boolean broken = false;
2517         try {
2518 
2519             result = shardedJedis.spop(key);
2520 
2521         } catch (Exception e) {
2522 
2523             log.error(e.getMessage(), e);
2524             broken = true;
2525         } finally {
2526             redisDataSource.returnResource(shardedJedis, broken);
2527         }
2528         return result;
2529     }
2530 
2531     public Long scard(byte[] key) {
2532         Long result = null;
2533         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2534         if (shardedJedis == null) {
2535             return result;
2536         }
2537         boolean broken = false;
2538         try {
2539 
2540             result = shardedJedis.scard(key);
2541 
2542         } catch (Exception e) {
2543 
2544             log.error(e.getMessage(), e);
2545             broken = true;
2546         } finally {
2547             redisDataSource.returnResource(shardedJedis, broken);
2548         }
2549         return result;
2550     }
2551 
2552     public Boolean sismember(byte[] key, byte[] member) {
2553         Boolean result = false;
2554         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2555         if (shardedJedis == null) {
2556             return result;
2557         }
2558         boolean broken = false;
2559         try {
2560 
2561             result = shardedJedis.sismember(key, member);
2562 
2563         } catch (Exception e) {
2564 
2565             log.error(e.getMessage(), e);
2566             broken = true;
2567         } finally {
2568             redisDataSource.returnResource(shardedJedis, broken);
2569         }
2570         return result;
2571     }
2572 
2573     public byte[] srandmember(byte[] key) {
2574         byte[] result = null;
2575         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2576         if (shardedJedis == null) {
2577             return result;
2578         }
2579         boolean broken = false;
2580         try {
2581 
2582             result = shardedJedis.srandmember(key);
2583 
2584         } catch (Exception e) {
2585 
2586             log.error(e.getMessage(), e);
2587             broken = true;
2588         } finally {
2589             redisDataSource.returnResource(shardedJedis, broken);
2590         }
2591         return result;
2592     }
2593 
2594     public Long zadd(byte[] key, double score, byte[] member) {
2595         Long result = null;
2596         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2597         if (shardedJedis == null) {
2598             return result;
2599         }
2600         boolean broken = false;
2601         try {
2602 
2603             result = shardedJedis.zadd(key, score, member);
2604 
2605         } catch (Exception e) {
2606 
2607             log.error(e.getMessage(), e);
2608             broken = true;
2609         } finally {
2610             redisDataSource.returnResource(shardedJedis, broken);
2611         }
2612         return result;
2613     }
2614 
2615     public Set<byte[]> zrange(byte[] key, int start, int end) {
2616         Set<byte[]> result = null;
2617         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2618         if (shardedJedis == null) {
2619             return result;
2620         }
2621         boolean broken = false;
2622         try {
2623 
2624             result = shardedJedis.zrange(key, start, end);
2625 
2626         } catch (Exception e) {
2627 
2628             log.error(e.getMessage(), e);
2629             broken = true;
2630         } finally {
2631             redisDataSource.returnResource(shardedJedis, broken);
2632         }
2633         return result;
2634     }
2635 
2636     public Long zrem(byte[] key, byte[] member) {
2637         Long result = null;
2638         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2639         if (shardedJedis == null) {
2640             return result;
2641         }
2642         boolean broken = false;
2643         try {
2644 
2645             result = shardedJedis.zrem(key, member);
2646 
2647         } catch (Exception e) {
2648 
2649             log.error(e.getMessage(), e);
2650             broken = true;
2651         } finally {
2652             redisDataSource.returnResource(shardedJedis, broken);
2653         }
2654         return result;
2655     }
2656 
2657     public Double zincrby(byte[] key, double score, byte[] member) {
2658         Double result = null;
2659         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2660         if (shardedJedis == null) {
2661             return result;
2662         }
2663         boolean broken = false;
2664         try {
2665 
2666             result = shardedJedis.zincrby(key, score, member);
2667 
2668         } catch (Exception e) {
2669 
2670             log.error(e.getMessage(), e);
2671             broken = true;
2672         } finally {
2673             redisDataSource.returnResource(shardedJedis, broken);
2674         }
2675         return result;
2676     }
2677 
2678     public Long zrank(byte[] key, byte[] member) {
2679         Long result = null;
2680         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2681         if (shardedJedis == null) {
2682             return result;
2683         }
2684         boolean broken = false;
2685         try {
2686 
2687             result = shardedJedis.zrank(key, member);
2688 
2689         } catch (Exception e) {
2690 
2691             log.error(e.getMessage(), e);
2692             broken = true;
2693         } finally {
2694             redisDataSource.returnResource(shardedJedis, broken);
2695         }
2696         return result;
2697     }
2698 
2699     public Long zrevrank(byte[] key, byte[] member) {
2700         Long result = null;
2701         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2702         if (shardedJedis == null) {
2703             return result;
2704         }
2705         boolean broken = false;
2706         try {
2707 
2708             result = shardedJedis.zrevrank(key, member);
2709 
2710         } catch (Exception e) {
2711 
2712             log.error(e.getMessage(), e);
2713             broken = true;
2714         } finally {
2715             redisDataSource.returnResource(shardedJedis, broken);
2716         }
2717         return result;
2718     }
2719 
2720     public Set<byte[]> zrevrange(byte[] key, int start, int end) {
2721         Set<byte[]> result = null;
2722         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2723         if (shardedJedis == null) {
2724             return result;
2725         }
2726         boolean broken = false;
2727         try {
2728 
2729             result = shardedJedis.zrevrange(key, start, end);
2730 
2731         } catch (Exception e) {
2732 
2733             log.error(e.getMessage(), e);
2734             broken = true;
2735         } finally {
2736             redisDataSource.returnResource(shardedJedis, broken);
2737         }
2738         return result;
2739     }
2740 
2741     public Set<Tuple> zrangeWithScores(byte[] key, int start, int end) {
2742         Set<Tuple> result = null;
2743         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2744         if (shardedJedis == null) {
2745             return result;
2746         }
2747         boolean broken = false;
2748         try {
2749 
2750             result = shardedJedis.zrangeWithScores(key, start, end);
2751 
2752         } catch (Exception e) {
2753 
2754             log.error(e.getMessage(), e);
2755             broken = true;
2756         } finally {
2757             redisDataSource.returnResource(shardedJedis, broken);
2758         }
2759         return result;
2760     }
2761 
2762     public Set<Tuple> zrevrangeWithScores(byte[] key, int start, int end) {
2763         Set<Tuple> result = null;
2764         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2765         if (shardedJedis == null) {
2766             return result;
2767         }
2768         boolean broken = false;
2769         try {
2770 
2771             result = shardedJedis.zrevrangeWithScores(key, start, end);
2772 
2773         } catch (Exception e) {
2774 
2775             log.error(e.getMessage(), e);
2776             broken = true;
2777         } finally {
2778             redisDataSource.returnResource(shardedJedis, broken);
2779         }
2780         return result;
2781     }
2782 
2783     public Long zcard(byte[] key) {
2784         Long result = null;
2785         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2786         if (shardedJedis == null) {
2787             return result;
2788         }
2789         boolean broken = false;
2790         try {
2791 
2792             result = shardedJedis.zcard(key);
2793 
2794         } catch (Exception e) {
2795 
2796             log.error(e.getMessage(), e);
2797             broken = true;
2798         } finally {
2799             redisDataSource.returnResource(shardedJedis, broken);
2800         }
2801         return result;
2802     }
2803 
2804     public Double zscore(byte[] key, byte[] member) {
2805         Double result = null;
2806         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2807         if (shardedJedis == null) {
2808             return result;
2809         }
2810         boolean broken = false;
2811         try {
2812 
2813             result = shardedJedis.zscore(key, member);
2814 
2815         } catch (Exception e) {
2816 
2817             log.error(e.getMessage(), e);
2818             broken = true;
2819         } finally {
2820             redisDataSource.returnResource(shardedJedis, broken);
2821         }
2822         return result;
2823     }
2824 
2825     public List<byte[]> sort(byte[] key) {
2826         List<byte[]> result = null;
2827         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2828         if (shardedJedis == null) {
2829             return result;
2830         }
2831         boolean broken = false;
2832         try {
2833 
2834             result = shardedJedis.sort(key);
2835 
2836         } catch (Exception e) {
2837 
2838             log.error(e.getMessage(), e);
2839             broken = true;
2840         } finally {
2841             redisDataSource.returnResource(shardedJedis, broken);
2842         }
2843         return result;
2844     }
2845 
2846     public List<byte[]> sort(byte[] key, SortingParams sortingParameters) {
2847         List<byte[]> result = null;
2848         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2849         if (shardedJedis == null) {
2850             return result;
2851         }
2852         boolean broken = false;
2853         try {
2854 
2855             result = shardedJedis.sort(key, sortingParameters);
2856 
2857         } catch (Exception e) {
2858 
2859             log.error(e.getMessage(), e);
2860             broken = true;
2861         } finally {
2862             redisDataSource.returnResource(shardedJedis, broken);
2863         }
2864         return result;
2865     }
2866 
2867     public Long zcount(byte[] key, double min, double max) {
2868         Long result = null;
2869         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2870         if (shardedJedis == null) {
2871             return result;
2872         }
2873         boolean broken = false;
2874         try {
2875 
2876             result = shardedJedis.zcount(key, min, max);
2877 
2878         } catch (Exception e) {
2879 
2880             log.error(e.getMessage(), e);
2881             broken = true;
2882         } finally {
2883             redisDataSource.returnResource(shardedJedis, broken);
2884         }
2885         return result;
2886     }
2887 
2888     public Set<byte[]> zrangeByScore(byte[] key, double min, double max) {
2889         Set<byte[]> result = null;
2890         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2891         if (shardedJedis == null) {
2892             return result;
2893         }
2894         boolean broken = false;
2895         try {
2896 
2897             result = shardedJedis.zrangeByScore(key, min, max);
2898 
2899         } catch (Exception e) {
2900 
2901             log.error(e.getMessage(), e);
2902             broken = true;
2903         } finally {
2904             redisDataSource.returnResource(shardedJedis, broken);
2905         }
2906         return result;
2907     }
2908 
2909     public Set<byte[]> zrangeByScore(byte[] key, double min, double max, int offset, int count) {
2910         Set<byte[]> result = null;
2911         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2912         if (shardedJedis == null) {
2913             return result;
2914         }
2915         boolean broken = false;
2916         try {
2917 
2918             result = shardedJedis.zrangeByScore(key, min, max, offset, count);
2919 
2920         } catch (Exception e) {
2921 
2922             log.error(e.getMessage(), e);
2923             broken = true;
2924         } finally {
2925             redisDataSource.returnResource(shardedJedis, broken);
2926         }
2927         return result;
2928     }
2929 
2930     public Set<Tuple> zrangeByScoreWithScores(byte[] key, double min, double max) {
2931         Set<Tuple> result = null;
2932         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2933         if (shardedJedis == null) {
2934             return result;
2935         }
2936         boolean broken = false;
2937         try {
2938 
2939             result = shardedJedis.zrangeByScoreWithScores(key, min, max);
2940 
2941         } catch (Exception e) {
2942 
2943             log.error(e.getMessage(), e);
2944             broken = true;
2945         } finally {
2946             redisDataSource.returnResource(shardedJedis, broken);
2947         }
2948         return result;
2949     }
2950 
2951     public Set<Tuple> zrangeByScoreWithScores(byte[] key, double min, double max, int offset, int count) {
2952         Set<Tuple> result = null;
2953         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2954         if (shardedJedis == null) {
2955             return result;
2956         }
2957         boolean broken = false;
2958         try {
2959 
2960             result = shardedJedis.zrangeByScoreWithScores(key, min, max, offset, count);
2961 
2962         } catch (Exception e) {
2963 
2964             log.error(e.getMessage(), e);
2965             broken = true;
2966         } finally {
2967             redisDataSource.returnResource(shardedJedis, broken);
2968         }
2969         return result;
2970     }
2971 
2972     public Set<byte[]> zrevrangeByScore(byte[] key, double max, double min) {
2973         Set<byte[]> result = null;
2974         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2975         if (shardedJedis == null) {
2976             return result;
2977         }
2978         boolean broken = false;
2979         try {
2980 
2981             result = shardedJedis.zrevrangeByScore(key, max, min);
2982 
2983         } catch (Exception e) {
2984 
2985             log.error(e.getMessage(), e);
2986             broken = true;
2987         } finally {
2988             redisDataSource.returnResource(shardedJedis, broken);
2989         }
2990         return result;
2991     }
2992 
2993     public Set<byte[]> zrevrangeByScore(byte[] key, double max, double min, int offset, int count) {
2994         Set<byte[]> result = null;
2995         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
2996         if (shardedJedis == null) {
2997             return result;
2998         }
2999         boolean broken = false;
3000         try {
3001 
3002             result = shardedJedis.zrevrangeByScore(key, max, min, offset, count);
3003 
3004         } catch (Exception e) {
3005 
3006             log.error(e.getMessage(), e);
3007             broken = true;
3008         } finally {
3009             redisDataSource.returnResource(shardedJedis, broken);
3010         }
3011         return result;
3012     }
3013 
3014     public Set<Tuple> zrevrangeByScoreWithScores(byte[] key, double max, double min) {
3015         Set<Tuple> result = null;
3016         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3017         if (shardedJedis == null) {
3018             return result;
3019         }
3020         boolean broken = false;
3021         try {
3022 
3023             result = shardedJedis.zrevrangeByScoreWithScores(key, max, min);
3024 
3025         } catch (Exception e) {
3026 
3027             log.error(e.getMessage(), e);
3028             broken = true;
3029         } finally {
3030             redisDataSource.returnResource(shardedJedis, broken);
3031         }
3032         return result;
3033     }
3034 
3035     public Set<Tuple> zrevrangeByScoreWithScores(byte[] key, double max, double min, int offset, int count) {
3036         Set<Tuple> result = null;
3037         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3038         if (shardedJedis == null) {
3039             return result;
3040         }
3041         boolean broken = false;
3042         try {
3043 
3044             result = shardedJedis.zrevrangeByScoreWithScores(key, max, min, offset, count);
3045 
3046         } catch (Exception e) {
3047 
3048             log.error(e.getMessage(), e);
3049             broken = true;
3050         } finally {
3051             redisDataSource.returnResource(shardedJedis, broken);
3052         }
3053         return result;
3054     }
3055 
3056     public Long zremrangeByRank(byte[] key, int start, int end) {
3057         Long result = null;
3058         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3059         if (shardedJedis == null) {
3060             return result;
3061         }
3062         boolean broken = false;
3063         try {
3064 
3065             result = shardedJedis.zremrangeByRank(key, start, end);
3066 
3067         } catch (Exception e) {
3068 
3069             log.error(e.getMessage(), e);
3070             broken = true;
3071         } finally {
3072             redisDataSource.returnResource(shardedJedis, broken);
3073         }
3074         return result;
3075     }
3076 
3077     public Long zremrangeByScore(byte[] key, double start, double end) {
3078         Long result = null;
3079         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3080         if (shardedJedis == null) {
3081             return result;
3082         }
3083         boolean broken = false;
3084         try {
3085 
3086             result = shardedJedis.zremrangeByScore(key, start, end);
3087 
3088         } catch (Exception e) {
3089             log.error(e.getMessage(), e);
3090             broken = true;
3091         } finally {
3092             redisDataSource.returnResource(shardedJedis, broken);
3093         }
3094         return result;
3095     }
3096 
3097     public Long linsert(byte[] key, LIST_POSITION where, byte[] pivot, byte[] value) {
3098         Long result = null;
3099         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3100         if (shardedJedis == null) {
3101             return result;
3102         }
3103         boolean broken = false;
3104         try {
3105 
3106             result = shardedJedis.linsert(key, where, pivot, value);
3107 
3108         } catch (Exception e) {
3109             log.error(e.getMessage(), e);
3110             broken = true;
3111         } finally {
3112             redisDataSource.returnResource(shardedJedis, broken);
3113         }
3114         return result;
3115     }
3116 
3117     public List<Object> pipelined(ShardedJedisPipeline shardedJedisPipeline) {
3118         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3119         List<Object> result = null;
3120         if (shardedJedis == null) {
3121             return result;
3122         }
3123         boolean broken = false;
3124         try {
3125             result = shardedJedis.pipelined(shardedJedisPipeline);
3126         } catch (Exception e) {
3127             log.error(e.getMessage(), e);
3128             broken = true;
3129         } finally {
3130             redisDataSource.returnResource(shardedJedis, broken);
3131         }
3132         return result;
3133     }
3134 
3135     public Jedis getShard(byte[] key) {
3136         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3137         Jedis result = null;
3138         if (shardedJedis == null) {
3139             return result;
3140         }
3141         boolean broken = false;
3142         try {
3143             result = shardedJedis.getShard(key);
3144         } catch (Exception e) {
3145             log.error(e.getMessage(), e);
3146             broken = true;
3147         } finally {
3148             redisDataSource.returnResource(shardedJedis, broken);
3149         }
3150         return result;
3151     }
3152 
3153     public Jedis getShard(String key) {
3154         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3155         Jedis result = null;
3156         if (shardedJedis == null) {
3157             return result;
3158         }
3159         boolean broken = false;
3160         try {
3161             result = shardedJedis.getShard(key);
3162         } catch (Exception e) {
3163             log.error(e.getMessage(), e);
3164             broken = true;
3165         } finally {
3166             redisDataSource.returnResource(shardedJedis, broken);
3167         }
3168         return result;
3169     }
3170 
3171     public JedisShardInfo getShardInfo(byte[] key) {
3172         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3173         JedisShardInfo result = null;
3174         if (shardedJedis == null) {
3175             return result;
3176         }
3177         boolean broken = false;
3178         try {
3179             result = shardedJedis.getShardInfo(key);
3180         } catch (Exception e) {
3181             log.error(e.getMessage(), e);
3182             broken = true;
3183         } finally {
3184             redisDataSource.returnResource(shardedJedis, broken);
3185         }
3186         return result;
3187     }
3188 
3189     public JedisShardInfo getShardInfo(String key) {
3190         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3191         JedisShardInfo result = null;
3192         if (shardedJedis == null) {
3193             return result;
3194         }
3195         boolean broken = false;
3196         try {
3197             result = shardedJedis.getShardInfo(key);
3198         } catch (Exception e) {
3199             log.error(e.getMessage(), e);
3200             broken = true;
3201         } finally {
3202             redisDataSource.returnResource(shardedJedis, broken);
3203         }
3204         return result;
3205     }
3206 
3207     public String getKeyTag(String key) {
3208         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3209         String result = null;
3210         if (shardedJedis == null) {
3211             return result;
3212         }
3213         boolean broken = false;
3214         try {
3215             result = shardedJedis.getKeyTag(key);
3216         } catch (Exception e) {
3217             log.error(e.getMessage(), e);
3218             broken = true;
3219         } finally {
3220             redisDataSource.returnResource(shardedJedis, broken);
3221         }
3222         return result;
3223     }
3224 
3225     public Collection<JedisShardInfo> getAllShardInfo() {
3226         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3227         Collection<JedisShardInfo> result = null;
3228         if (shardedJedis == null) {
3229             return result;
3230         }
3231         boolean broken = false;
3232         try {
3233             result = shardedJedis.getAllShardInfo();
3234 
3235         } catch (Exception e) {
3236             log.error(e.getMessage(), e);
3237             broken = true;
3238         } finally {
3239             redisDataSource.returnResource(shardedJedis, broken);
3240         }
3241         return result;
3242     }
3243 
3244     public Collection<Jedis> getAllShards() {
3245         ShardedJedis shardedJedis = redisDataSource.getRedisClient();
3246         Collection<Jedis> result = null;
3247         if (shardedJedis == null) {
3248             return result;
3249         }
3250         boolean broken = false;
3251         try {
3252             result = shardedJedis.getAllShards();
3253 
3254         } catch (Exception e) {
3255             log.error(e.getMessage(), e);
3256             broken = true;
3257         } finally {
3258             redisDataSource.returnResource(shardedJedis, broken);
3259         }
3260         return result;
3261     }
3262 
3263 }
View Code

RedisDataSource  文件:

1 package common.utils.redis;
2 
3 import redis.clients.jedis.ShardedJedis;
4 
5 public interface RedisDataSource {
6     public abstract ShardedJedis getRedisClient();
7     public void returnResource(ShardedJedis shardedJedis);
8     public void returnResource(ShardedJedis shardedJedis,boolean broken);
9 }
View Code

RedisDataSourceImpl 文件:

 1 package common.utils.redis;
 2 
 3 import org.slf4j.Logger;
 4 import org.slf4j.LoggerFactory;
 5 
 6 import redis.clients.jedis.ShardedJedis;
 7 import redis.clients.jedis.ShardedJedisPool;
 8 /**
 9  * RedisDataSourceImpl
10  *
11  * @description 
12  * getRedisClient() : 取得redis的客戶端,等待執行命令。
13  * returnResource(ShardedJedis shardedJedis) : 將資源返還給pool
14  * returnResource(ShardedJedis shardedJedis, boolean broken) : 出現異常後,將資源返還給pool 
15  *
16  * @author HuangShaoFeng
17  * @createDate 2017年2月15日
18  */
19 public class RedisDataSourceImpl implements RedisDataSource {
20 
21     private static final Logger log = LoggerFactory.getLogger(RedisDataSourceImpl.class);
22 
23     private static ShardedJedisPool     shardedJedisPool;
24     static {
25         synchronized (ShardedJedisPool.class) {
26             if (shardedJedisPool == null) {
27                 shardedJedisPool = JedisPool.getPool();
28             }
29         }
30     }
31     public ShardedJedis getRedisClient() {
32         try {
33             ShardedJedis shardJedis = shardedJedisPool.getResource();
34             return shardJedis;
35         } catch (Exception e) {
36             log.error("getRedisClent error", e);
37         }
38         return null;
39     }
40 
41     public void returnResource(ShardedJedis shardedJedis) {
42         shardedJedisPool.returnResource(shardedJedis);
43     }
44 
45     public void returnResource(ShardedJedis shardedJedis, boolean broken) {
46         if (broken) {
47             shardedJedisPool.returnBrokenResource(shardedJedis);
48         } else {
49             shardedJedisPool.returnResource(shardedJedis);
50         }
51     }
52 }
View Code

 至此,項目redis緩存已經配置好.........!

  好了,第一篇博客就這樣簡單的弄完了.往後將發些博客.將開發學習中的筆記作好整理.

  學而不思則罔 思而不學則殆

  多搬磚,少挖坑!

相關文章
相關標籤/搜索