Redis 讲解系列之 与Spring集成(二)

Redis 讲解系列之 与Spring集成(二)

上章中我们讲解了如何使用spring与spring-data-redis如何整合在一起同时总结出了一些优缺点,正对于缺点的优化和改善,本章将讲解一种高自定获取Jedispool和RedisClientTemplate的方法。

实例

  • 新建Maven web项目,并自定义Build path source folde。
    这里写图片描述

  • 文件代码

    • pom.xml

      <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
          <modelVersion>4.0.0</modelVersion>
          <groupId>com.sstps.redis</groupId>
          <artifactId>Template1</artifactId>
          <version>0.0.1-SNAPSHOT</version>
          <packaging>war</packaging>
      
      
          <properties>
              <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
          </properties>
      
          <dependencies>
              <dependency>
                  <groupId>org.springframework.data</groupId>
                  <artifactId>spring-data-redis</artifactId>
                  <version>1.0.2.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-core</artifactId>
                  <version>3.1.2.RELEASE</version>
              </dependency>
              <!-- https://mvnrepository.com/artifact/org.springframework/spring-web -->
              <dependency>
                  <groupId>org.springframework</groupId>
                  <artifactId>spring-web</artifactId>
                  <version>3.1.2.RELEASE</version>
              </dependency>
              <dependency>
                  <groupId>redis.clients</groupId>
                  <artifactId>jedis</artifactId>
                  <version>2.4.2</version>
              </dependency>
              <!-- Hack:确保commons-logging的jar包不被引入,否则将和jcl-over-slf4j冲突 -->
              <dependency>
                  <groupId>commons-logging</groupId>
                  <artifactId>commons-logging</artifactId>
                  <version>1.1.1</version>
                  <scope>provided</scope>
              </dependency>
          </dependencies>
      </project>
    • redis.properties

      
      # Redis settings
      
      
      redis.host=127.0.0.1
      redis.port=6379
      redis.password=wljr
      redis.timeout=3000
      redis.maxIdle=300
      redis.maxTotal=600
      redis.maxWait=1000
      
      redis.testOnBorrow=true
      redis.testOnReturn=true
    • AplicationContext.xml

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:aop="http://www.springframework.org/schema/aop"
          xmlns:context="http://www.springframework.org/schema/context"
          xmlns:tx="http://www.springframework.org/schema/tx"
          xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
              http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
              http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
              http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
      
      <!-- 启用注解 -->
      <context:annotation-config></context:annotation-config>
      
      <!-- 扫描 -->
      <context:component-scan base-package="com.sstps.redis" use-default-filters="true"></context:component-scan>
      
      <!-- 读取配置文件 -->
      <bean id="propertyConfiguration" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
          <property name="locations">
              <list>
                  <value>/WEB-INF/classes/redis.properties</value>
              </list>
          </property>
      </bean>
      
      <!-- ==================================   Redis 配置开始       ================================================= -->
      
      <!-- Redis Template -->
      <bean id="" class="com.sstps.redis.RedisClientTemplate">
          <property name="redisDataSource" ref="redisDataSource"></property>
      </bean>
      
      <!-- Redis DataSource -->
      <bean id="redisDataSource" class="com.sstps.redis.RedisDataSourceImpl">
          <property name="jedisPool" ref="jedispool"></property>
      </bean>
      
      <!-- Redis pool setting -->
      <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
          <property name="maxIdle" value="${redis.maxIdle}"></property>  
          <property name="maxTotal" value="${redis.maxTotal}"></property>
          <property name="maxWaitMillis" value="${redis.maxWait}"></property>
          <property name="testOnBorrow" value="${redis.testOnBorrow}"></property>
          <property name="testOnReturn" value="${redis.testOnReturn}"></property>
      </bean>
      
      <!-- Redis Connector setting -->
      <bean id="jedispool" class="redis.clients.jedis.JedisPool">
           <constructor-arg index="0" ref="jedisPoolConfig"/>
            <constructor-arg index="1" value="${redis.host}"/>
            <constructor-arg index="2" value="${redis.port}" type="int"/>
            <constructor-arg index="3" value="${redis.timeout}" type="int"/>
            <constructor-arg index="4" value="${redis.password}"/>
      </bean>
      <!-- ==================================   Redis 配置结束       ================================================= -->
      </beans>
      
    • RedisDataSource.java

      package com.sstps.redis;
      
      import redis.clients.jedis.Jedis;
      
      
      
      public interface RedisDataSource {
          // 取得redis的客户端,可以执行命令了。
          public abstract Jedis getRedisClient();
          //将资源返还给pool
          public void returnResource(Jedis shardedJedis);
          //出现异常后,将资源返还给pool 
          public void returnResource(Jedis shardedJedis,boolean broken);
      }
    • RedisDataSourceImpl.java

      package com.sstps.redis;
      
      import org.apache.commons.logging.Log;
      import org.apache.commons.logging.LogFactory;
      
      import redis.clients.jedis.Jedis;
      import redis.clients.jedis.JedisPool;
      
      
      
      public class RedisDataSourceImpl implements RedisDataSource {
      
          public static Log log = LogFactory.getLog(RedisDataSourceImpl.class);
      
          private JedisPool    jedisPool;
      
          public JedisPool getJedisPool() {
              return jedisPool;
          }
      
          public void setJedisPool(JedisPool JedisPool) {
              this.jedisPool = JedisPool;
          }
      
          public Jedis  getRedisClient() {
              try {
                   Jedis shardJedis = jedisPool.getResource();
                  return shardJedis;
              } catch (Exception e) {
                  log.error("getRedisClent error", e);
              }
              return null;
          }
      
          public void returnResource(Jedis Jedis) {
              jedisPool.returnResource(Jedis);
          }
      
          public void returnResource(Jedis Jedis, boolean broken) {
              if (broken) {
                  jedisPool.returnBrokenResource(Jedis);
              } else {
                  jedisPool.returnResource(Jedis);
              }
          }
      }
    • Template.java

      package com.sstps.template;
      
      import org.springframework.context.ApplicationContext;
      import org.springframework.context.support.ClassPathXmlApplicationContext;
      
      import com.sstps.redis.RedisClientTemplate;
      
      public class Template {
      
          public static void main(String[] args) {
              ApplicationContext ac =  new ClassPathXmlApplicationContext("classpath:/AplicationContext.xml");
              RedisClientTemplate redisClient = (RedisClientTemplate)ac.getBean("redisClientTemplate");
              redisClient.set("a", "Hi~Redis");
              System.out.println(redisClient.get("a"));
          }
      
      }
      
    • RedisClientTemplate.java

      package com.sstps.redis;
      
      import java.util.Collection;
      import java.util.List;
      import java.util.Map;
      import java.util.Set;
      
      import org.apache.commons.logging.Log;
      import org.apache.commons.logging.LogFactory;
      import org.springframework.web.context.ContextLoader;
      
      import redis.clients.jedis.BinaryClient.LIST_POSITION;
      import redis.clients.jedis.Jedis;
      import redis.clients.jedis.SortingParams;
      import redis.clients.jedis.Tuple;
      
      /**
       * 
       * @author 
       * 2016.8.24
       * 第二层的封装:RedisClientTemplate
       *
       */
      public class RedisClientTemplate {
      
          public static Log log = LogFactory.getLog(RedisClientTemplate.class);
      
          private RedisDataSource     redisDataSource;
      
          public RedisDataSource getRedisDataSource() {
              return redisDataSource;
          }
      
          public void setRedisDataSource(RedisDataSource redisDataSource) {
              this.redisDataSource = redisDataSource;
          }
      
          public void disconnect() {
              Jedis Jedis = redisDataSource.getRedisClient();
              Jedis.disconnect();
          }
      
      
          /**
           * 设置单个值
           * 
           * @param key
           * @param value
           * @return
           * @throws Exception 
           */
          public String set(String key, String value) {
              String result = null;
      
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.set(key, value);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          /**
           * 获取单个值
           * 
           * @param key
           * @return
           */
          public String get(String key) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
      
              boolean broken = false;
              try {
                  result = Jedis.get(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Boolean exists(String key) {
              Boolean result = false;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.exists(key);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String type(String key) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.type(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          /**
           * 在某段时间后实现
           * 
           * @param key
           * @param unixTime
           * @return
           */
          public Long expire(String key, int seconds) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.expire(key, seconds);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          /**
           * 在某个时间点失效
           * 
           * @param key
           * @param unixTime
           * @return
           */
          public Long expireAt(String key, long unixTime) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.expireAt(key, unixTime);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long ttl(String key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.ttl(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public boolean setbit(String key, long offset, boolean value) {
      
              Jedis Jedis = redisDataSource.getRedisClient();
              boolean result = false;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.setbit(key, offset, value);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public boolean getbit(String key, long offset) {
              Jedis Jedis = redisDataSource.getRedisClient();
              boolean result = false;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
      
              try {
                  result = Jedis.getbit(key, offset);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public long setrange(String key, long offset, String value) {
              Jedis Jedis = redisDataSource.getRedisClient();
              long result = 0;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.setrange(key, offset, value);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String getrange(String key, long startOffset, long endOffset) {
              Jedis Jedis = redisDataSource.getRedisClient();
              String result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getrange(key, startOffset, endOffset);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String getSet(String key, String value) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getSet(key, value);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long setnx(String key, String value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.setnx(key, value);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String setex(String key, int seconds, String value) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.setex(key, seconds, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long decrBy(String key, long integer) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.decrBy(key, integer);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long decr(String key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.decr(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long incrBy(String key, long integer) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.incrBy(key, integer);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long incr(String key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.incr(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long append(String key, String value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.append(key, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String substr(String key, int start, int end) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.substr(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hset(String key, String field, String value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hset(key, field, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String hget(String key, String field) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hget(key, field);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hsetnx(String key, String field, String value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hsetnx(key, field, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String hmset(String key, Map<String, String> hash) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hmset(key, hash);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<String> hmget(String key, String... fields) {
              List<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hmget(key, fields);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hincrBy(String key, String field, long value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hincrBy(key, field, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Boolean hexists(String key, String field) {
              Boolean result = false;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hexists(key, field);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long del(String key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.del(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hdel(String key, String field) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hdel(key, field);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hlen(String key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hlen(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<String> hkeys(String key) {
              Set<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hkeys(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<String> hvals(String key) {
              List<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hvals(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Map<String, String> hgetAll(String key) {
              Map<String, String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.hgetAll(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          // ================list ====== l表示 list或 left, r表示right====================
          public Long rpush(String key, String string) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.rpush(key, string);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long lpush(String key, String string) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.lpush(key, string);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long llen(String key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.llen(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<String> lrange(String key, long start, long end) {
              List<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.lrange(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String ltrim(String key, long start, long end) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.ltrim(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String lindex(String key, long index) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.lindex(key, index);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String lset(String key, long index, String value) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.lset(key, index, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long lrem(String key, long count, String value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.lrem(key, count, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String lpop(String key) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.lpop(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String rpop(String key) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.rpop(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          //return 1 add a not exist value ,
          //return 0 add a exist value
          public Long sadd(String key, String member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.sadd(key, member);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<String> smembers(String key) {
              Set<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.smembers(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long srem(String key, String member) {
              Jedis Jedis = redisDataSource.getRedisClient();
      
              Long result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.srem(key, member);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String spop(String key) {
              Jedis Jedis = redisDataSource.getRedisClient();
              String result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.spop(key);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long scard(String key) {
              Jedis Jedis = redisDataSource.getRedisClient();
              Long result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.scard(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Boolean sismember(String key, String member) {
              Jedis Jedis = redisDataSource.getRedisClient();
              Boolean result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.sismember(key, member);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String srandmember(String key) {
              Jedis Jedis = redisDataSource.getRedisClient();
              String result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.srandmember(key);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zadd(String key, double score, String member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.zadd(key, score, member);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<String> zrange(String key, int start, int end) {
              Set<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.zrange(key, start, end);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zrem(String key, String member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.zrem(key, member);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Double zincrby(String key, double score, String member) {
              Double result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zincrby(key, score, member);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zrank(String key, String member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrank(key, member);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zrevrank(String key, String member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrank(key, member);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<String> zrevrange(String key, int start, int end) {
              Set<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrange(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrangeWithScores(String key, int start, int end) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeWithScores(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrevrangeWithScores(String key, int start, int end) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeWithScores(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zcard(String key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zcard(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Double zscore(String key, String member) {
              Double result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zscore(key, member);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<String> sort(String key) {
              List<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.sort(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<String> sort(String key, SortingParams sortingParameters) {
              List<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.sort(key, sortingParameters);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zcount(String key, double min, double max) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zcount(key, min, max);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<String> zrangeByScore(String key, double min, double max) {
              Set<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeByScore(key, min, max);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<String> zrevrangeByScore(String key, double max, double min) {
              Set<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeByScore(key, max, min);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<String> zrangeByScore(String key, double min, double max, int offset, int count) {
              Set<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeByScore(key, min, max, offset, count);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<String> zrevrangeByScore(String key, double max, double min, int offset, int count) {
              Set<String> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeByScore(key, max, min, offset, count);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrangeByScoreWithScores(String key, double min, double max) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeByScoreWithScores(key, min, max);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrevrangeByScoreWithScores(String key, double max, double min) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeByScoreWithScores(key, max, min);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrangeByScoreWithScores(String key, double min, double max, int offset, int count) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeByScoreWithScores(key, min, max, offset, count);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrevrangeByScoreWithScores(String key, double max, double min, int offset, int count) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeByScoreWithScores(key, max, min, offset, count);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zremrangeByRank(String key, int start, int end) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zremrangeByRank(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zremrangeByScore(String key, double start, double end) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zremrangeByScore(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long linsert(String key, LIST_POSITION where, String pivot, String value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.linsert(key, where, pivot, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String set(byte[] key, byte[] value) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.set(key, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] get(byte[] key) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.get(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Boolean exists(byte[] key) {
              Boolean result = false;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.exists(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String type(byte[] key) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.type(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long expire(byte[] key, int seconds) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.expire(key, seconds);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long expireAt(byte[] key, long unixTime) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.expireAt(key, unixTime);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long ttl(byte[] key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.ttl(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] getSet(byte[] key, byte[] value) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.getSet(key, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long setnx(byte[] key, byte[] value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.setnx(key, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String setex(byte[] key, int seconds, byte[] value) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.setex(key, seconds, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long decrBy(byte[] key, long integer) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.decrBy(key, integer);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long decr(byte[] key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.decr(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long incrBy(byte[] key, long integer) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.incrBy(key, integer);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long incr(byte[] key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.incr(key);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long append(byte[] key, byte[] value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.append(key, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] substr(byte[] key, int start, int end) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.substr(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hset(byte[] key, byte[] field, byte[] value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hset(key, field, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] hget(byte[] key, byte[] field) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hget(key, field);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hsetnx(byte[] key, byte[] field, byte[] value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hsetnx(key, field, value);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String hmset(byte[] key, Map<byte[], byte[]> hash) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hmset(key, hash);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<byte[]> hmget(byte[] key, byte[]... fields) {
              List<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hmget(key, fields);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hincrBy(byte[] key, byte[] field, long value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hincrBy(key, field, value);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Boolean hexists(byte[] key, byte[] field) {
              Boolean result = false;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hexists(key, field);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hdel(byte[] key, byte[] field) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hdel(key, field);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long hlen(byte[] key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hlen(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<byte[]> hkeys(byte[] key) {
              Set<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hkeys(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Collection<byte[]> hvals(byte[] key) {
              Collection<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hvals(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Map<byte[], byte[]> hgetAll(byte[] key) {
              Map<byte[], byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.hgetAll(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long rpush(byte[] key, byte[] string) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.rpush(key, string);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long lpush(byte[] key, byte[] string) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.lpush(key, string);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long llen(byte[] key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.llen(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<byte[]> lrange(byte[] key, int start, int end) {
              List<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.lrange(key, start, end);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String ltrim(byte[] key, int start, int end) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.ltrim(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] lindex(byte[] key, int index) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.lindex(key, index);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String lset(byte[] key, int index, byte[] value) {
              String result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.lset(key, index, value);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long lrem(byte[] key, int count, byte[] value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.lrem(key, count, value);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] lpop(byte[] key) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.lpop(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] rpop(byte[] key) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.rpop(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long sadd(byte[] key, byte[] member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.sadd(key, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<byte[]> smembers(byte[] key) {
              Set<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.smembers(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long srem(byte[] key, byte[] member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.srem(key, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] spop(byte[] key) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.spop(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long scard(byte[] key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.scard(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Boolean sismember(byte[] key, byte[] member) {
              Boolean result = false;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.sismember(key, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public byte[] srandmember(byte[] key) {
              byte[] result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.srandmember(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zadd(byte[] key, double score, byte[] member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zadd(key, score, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<byte[]> zrange(byte[] key, int start, int end) {
              Set<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrange(key, start, end);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zrem(byte[] key, byte[] member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrem(key, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Double zincrby(byte[] key, double score, byte[] member) {
              Double result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zincrby(key, score, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zrank(byte[] key, byte[] member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrank(key, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zrevrank(byte[] key, byte[] member) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrank(key, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<byte[]> zrevrange(byte[] key, int start, int end) {
              Set<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrange(key, start, end);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrangeWithScores(byte[] key, int start, int end) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeWithScores(key, start, end);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrevrangeWithScores(byte[] key, int start, int end) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeWithScores(key, start, end);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zcard(byte[] key) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zcard(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Double zscore(byte[] key, byte[] member) {
              Double result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zscore(key, member);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<byte[]> sort(byte[] key) {
              List<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.sort(key);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public List<byte[]> sort(byte[] key, SortingParams sortingParameters) {
              List<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.sort(key, sortingParameters);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zcount(byte[] key, double min, double max) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zcount(key, min, max);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<byte[]> zrangeByScore(byte[] key, double min, double max) {
              Set<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeByScore(key, min, max);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<byte[]> zrangeByScore(byte[] key, double min, double max, int offset, int count) {
              Set<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeByScore(key, min, max, offset, count);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrangeByScoreWithScores(byte[] key, double min, double max) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeByScoreWithScores(key, min, max);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrangeByScoreWithScores(byte[] key, double min, double max, int offset, int count) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrangeByScoreWithScores(key, min, max, offset, count);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<byte[]> zrevrangeByScore(byte[] key, double max, double min) {
              Set<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeByScore(key, max, min);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<byte[]> zrevrangeByScore(byte[] key, double max, double min, int offset, int count) {
              Set<byte[]> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeByScore(key, max, min, offset, count);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrevrangeByScoreWithScores(byte[] key, double max, double min) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeByScoreWithScores(key, max, min);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Set<Tuple> zrevrangeByScoreWithScores(byte[] key, double max, double min, int offset, int count) {
              Set<Tuple> result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zrevrangeByScoreWithScores(key, max, min, offset, count);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zremrangeByRank(byte[] key, int start, int end) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zremrangeByRank(key, start, end);
      
              } catch (Exception e) {
      
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long zremrangeByScore(byte[] key, double start, double end) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.zremrangeByScore(key, start, end);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Long linsert(byte[] key, LIST_POSITION where, byte[] pivot, byte[] value) {
              Long result = null;
              Jedis Jedis = redisDataSource.getRedisClient();
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
      
                  result = Jedis.linsert(key, where, pivot, value);
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
        /*  public List<Object> pipelined(JedisPipeline JedisPipeline) {
              Jedis Jedis = redisDataSource.getRedisClient();
              List<Object> result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.pipelined(JedisPipeline);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Jedis getShard(byte[] key) {
              Jedis Jedis = redisDataSource.getRedisClient();
              Jedis result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getShard(key);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Jedis getShard(String key) {
              Jedis Jedis = redisDataSource.getRedisClient();
              Jedis result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getShard(key);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public JedisShardInfo getShardInfo(byte[] key) {
              Jedis Jedis = redisDataSource.getRedisClient();
              JedisShardInfo result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getShardInfo(key);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public JedisShardInfo getShardInfo(String key) {
              Jedis Jedis = redisDataSource.getRedisClient();
              JedisShardInfo result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getShardInfo(key);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public String getKeyTag(String key) {
              Jedis Jedis = redisDataSource.getRedisClient();
              String result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getKeyTag(key);
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Collection<JedisShardInfo> getAllShardInfo() {
              Jedis Jedis = redisDataSource.getRedisClient();
              Collection<JedisShardInfo> result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getAllShardInfo();
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }
      
          public Collection<Jedis> getAllShards() {
              Jedis Jedis = redisDataSource.getRedisClient();
              Collection<Jedis> result = null;
              if (Jedis == null) {
                  return result;
              }
              boolean broken = false;
              try {
                  result = Jedis.getAllShards();
      
              } catch (Exception e) {
                  log.error(e.getMessage(), e);
                  broken = true;
              } finally {
                  redisDataSource.returnResource(Jedis, broken);
              }
              return result;
          }*/
      
      }
  • 运行结果:

    这里写图片描述


总结

Redis与Spring直接整合,而对RedisClientTemplate和JedisPool做了剥离和二次封装。下面我们总结一下本章方法的优缺点:

  • 缺点
    • 代码较冗余,毕竟是二次封装,从RedisClientTemplate.java即可看出。
    • …..
    • -
  • 优点

    • 使用体验极好,不要考虑考虑新建或者归还jedispool的问题。使用时直接使用RedisClientTemplate即可。
  • 优化点

    • 考虑将本章例子的Redis打成jar包已依赖的方式导入,然后在AplictionContext.xml完成同样的配置,这样依赖代码既不冗余,灵活性和实用性极高了。

本章实例获取链接

Spring+Redis(抽离RedisClientTemplate和JedisPool并进行二次封装)例子:
http://pan.baidu.com/s/1nvl4Pzr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值