Redis应用介绍

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

  Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。

redis目前提供四种数据类型:string,list,set及zset(sorted set)。   

(以上来源百度百科)

最近我们产品也用了Redis.贴出相关的配置和封装的代码。

Spring 配置:

[html]  view plain copy
  1. <!-- master连接池参数 -->  
  2.     <bean id="masterPoolConfig" class="redis.clients.jedis.JedisPoolConfig">  
  3.         <property name="maxActive"  value="20"/>  
  4.         <property name="maxIdle" value="10"/>  
  5.         <property name="maxWait" value="1000"/>  
  6.     </bean>  
  7.     <!-- slave连接池参数 -->  
  8.     <bean id="slavePoolConfig" class="redis.clients.jedis.JedisPoolConfig">  
  9.         <property name="maxActive"  value="50"/>  
  10.         <property name="maxIdle" value="20"/>  
  11.         <property name="maxWait" value="1000"/>  
  12.     </bean>  
  13.     <!-- 主机地址 -->  
  14.     <bean id="jedisPool" class="redis.clients.jedis.JedisPool">  
  15.         <constructor-arg index="0" ref="masterPoolConfig"/>  
  16.         <constructor-arg index="1" value="10.60.30.27"/>  
  17.         <constructor-arg index="2" value="6379" type="int"/>  
  18.     </bean>  
  19.     <!-- 从机地址 -->  
  20.     <bean id="shardInfo-0" class="redis.clients.jedis.JedisShardInfo">  
  21.         <constructor-arg index="0" value="10.60.30.27" />  
  22.         <constructor-arg index="1" value="6378" type="int"/>    
  23.     </bean>  
  24.     <bean id="shardInfo-1" class="redis.clients.jedis.JedisShardInfo">  
  25.         <constructor-arg index="0" value="10.60.30.27" />  
  26.         <constructor-arg index="1" value="6378" type="int"/>    
  27.     </bean>  
  28.     <bean id="shardedJedisPool" class="redis.clients.jedis.ShardedJedisPool">  
  29.         <constructor-arg index="0" ref="slavePoolConfig"/>  
  30.         <constructor-arg index="1">  
  31.             <list>  
  32.                 <ref bean="shardInfo-0"/>  
  33.                 <ref bean="shardInfo-1"/>  
  34.             </list>  
  35.         </constructor-arg>  
  36.     </bean>  
相关Redis的Java封装:

[java]  view plain copy
  1. import java.util.List;  
  2. import java.util.Map;  
  3. import java.util.Set;  
  4.   
  5.   
  6. import javax.annotation.PostConstruct;  
  7.   
  8.   
  9. import org.springframework.beans.factory.annotation.Autowired;  
  10. import org.springframework.stereotype.Service;  
  11.   
  12.   
  13. import redis.clients.jedis.BinaryClient.LIST_POSITION;  
  14. import redis.clients.jedis.Jedis;  
  15. import redis.clients.jedis.JedisPool;  
  16. import redis.clients.jedis.ShardedJedis;  
  17. import redis.clients.jedis.ShardedJedisPool;  
  18. import redis.clients.jedis.SortingParams;  
  19. import redis.clients.util.SafeEncoder;  
  20. @Service("redisBase")  
  21. public class RedisBase{  
  22.   
  23.   
  24.      @Autowired  
  25.      private JedisPool jedisPool;  
  26.      @Autowired  
  27.      private ShardedJedisPool shardedJedisPool;  
  28.        
  29.      /**操作Key的方法*/  
  30.      public Keys KEYS;  
  31.      /**对存储结构为String类型的操作*/  
  32.      public Strings STRINGS;  
  33.      /**对存储结构为List类型的操作*/  
  34.      public Lists LISTS;  
  35.      /**对存储结构为Set类型的操作*/  
  36.      public Sets SETS;  
  37.      /**对存储结构为HashMap类型的操作*/  
  38.      public Hash HASH;  
  39.      /**对存储结构为Set(排序的)类型的操作*/  
  40.      public SortSet SORTSET;  
  41.        
  42.        
  43.      @PostConstruct  
  44.      public void init(){  
  45.          KEYS=new Keys();  
  46.          STRINGS=new Strings();  
  47.          LISTS=new Lists();  
  48.          SETS=new Sets();  
  49.          SORTSET=new SortSet();  
  50.          HASH=new Hash();  
  51.      }  
  52.        
  53.      //TODO  
  54.      public class Keys{  
  55.            
  56.            
  57.          /** 
  58.           * 更改key,仅当新key不存在时才执行 
  59.           * @param String oldkey 
  60.           * @param String newkey 
  61.           * @return 状态码 
  62.           * */  
  63.          public String flushAll(){  
  64.              Jedis jedis=jedisPool.getResource();  
  65.              String stata=jedis.flushAll();  
  66.              jedisPool.returnResource(jedis);  
  67.              return stata;  
  68.          }  
  69.            
  70.          /** 
  71.           * 更改key 
  72.           * @param String oldkey 
  73.           * @param String newkey 
  74.           * @return 状态码 
  75.           * */  
  76.          public String rename(String oldkey,String newkey){  
  77.              return rename(SafeEncoder.encode(oldkey),SafeEncoder.encode(newkey));  
  78.          }  
  79.            
  80.          /** 
  81.           * 更改key,仅当新key不存在时才执行 
  82.           * @param String oldkey 
  83.           * @param String newkey 
  84.           * @return 状态码 
  85.           * */  
  86.          public long renamenx(String oldkey,String newkey){  
  87.              Jedis jedis=jedisPool.getResource();  
  88.              long status =jedis.renamenx(oldkey, newkey);  
  89.              jedisPool.returnResource(jedis);  
  90.              return status;  
  91.          }  
  92.            
  93.          /** 
  94.           * 更改key 
  95.           * @param String oldkey 
  96.           * @param String newkey 
  97.           * @return 状态码 
  98.           * */  
  99.          public String rename(byte[] oldkey,byte[] newkey){  
  100.              Jedis jedis=jedisPool.getResource();  
  101.              String status =jedis.rename(oldkey, newkey);  
  102.              jedisPool.returnResource(jedis);  
  103.              return status;  
  104.          }  
  105.            
  106.          /** 
  107.           * 设置key的过期时间,以秒为单位 
  108.           * @param String key 
  109.           * @param 时间,已秒为单位 
  110.           * @return 影响的记录数 
  111.           * */  
  112.          public long expired(String key,int seconds){  
  113.              Jedis jedis=jedisPool.getResource();  
  114.              long count =jedis.expire(key, seconds);  
  115.              jedisPool.returnResource(jedis);  
  116.              return count;  
  117.          }  
  118.            
  119.          /** 
  120.           * 设置key的过期时间,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00,格里高利历)的偏移量。 
  121.           * @param String key 
  122.           * @param 时间,已秒为单位 
  123.           * @return 影响的记录数 
  124.           * */  
  125.          public long expireAt(String key,long timestamp){  
  126.              Jedis jedis=jedisPool.getResource();  
  127.              long count =jedis.expireAt(key, timestamp);  
  128.              jedisPool.returnResource(jedis);  
  129.              return count;  
  130.          }  
  131.            
  132.          /** 
  133.           * 查询key的过期时间 
  134.           * @param String key 
  135.           * @return 以秒为单位的时间表示 
  136.           * */  
  137.          public long ttl(String key){  
  138.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  139.              long len=sjedis.ttl(key);  
  140.              shardedJedisPool.returnResource(sjedis);  
  141.              return len;  
  142.          }  
  143.            
  144.          /** 
  145.           * 取消对key过期时间的设置 
  146.           *@param key 
  147.           *@return 影响的记录数 
  148.           * */  
  149.          public long persist(String key){  
  150.              Jedis jedis=jedisPool.getResource();  
  151.              long count =jedis.persist(key);  
  152.              jedisPool.returnResource(jedis);  
  153.              return count;  
  154.          }  
  155.          /** 
  156.           * 删除keys对应的记录,可以是多个key 
  157.           * @param String... keys 
  158.           * @return 删除的记录数 
  159.           * */  
  160.          public long del(String... keys){  
  161.              Jedis jedis=jedisPool.getResource();  
  162.              long count =jedis.del(keys);  
  163.              jedisPool.returnResource(jedis);  
  164.              return count;  
  165.          }  
  166.            
  167.          /** 
  168.           * 删除keys对应的记录,可以是多个key 
  169.           * @param String... keys 
  170.           * @return 删除的记录数 
  171.           * */  
  172.          public long del(byte[]... keys){  
  173.              Jedis jedis=jedisPool.getResource();  
  174.              long count =jedis.del(keys);  
  175.              jedisPool.returnResource(jedis);  
  176.              return count;  
  177.          }  
  178.            
  179.          /** 
  180.           * 判断key是否存在 
  181.           * @param String key 
  182.           * @return boolean 
  183.           * */  
  184.          public boolean exists(String key){  
  185.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  186.              boolean exis=sjedis.exists(key);  
  187.              shardedJedisPool.returnResource(sjedis);  
  188.              return exis;  
  189.          }  
  190.            
  191.          /** 
  192.           * 对List,Set,SortSet进行排序,如果集合数据较大应避免使用这个方法 
  193.           * @param String key 
  194.           * @return List<String> 集合的全部记录 
  195.           * **/  
  196.          public List<String> sort(String key){  
  197.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  198.              List<String> list=sjedis.sort(key);  
  199.              shardedJedisPool.returnResource(sjedis);  
  200.              return list;  
  201.          }  
  202.            
  203.          /** 
  204.           * 对List,Set,SortSet进行排序或limit 
  205.           * @param String key 
  206.           * @param SortingParams parame 定义排序类型或limit的起止位置. 
  207.           * @return List<String> 全部或部分记录 
  208.           * **/  
  209.          public List<String> sort(String key,SortingParams parame){  
  210.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  211.              List<String> list=sjedis.sort(key, parame);  
  212.              shardedJedisPool.returnResource(sjedis);  
  213.              return list;  
  214.          }  
  215.            
  216.          /** 
  217.           * 返回指定key存储的类型 
  218.           * @param String key 
  219.           * @return String  string|list|set|zset|hash 
  220.           * **/  
  221.          public String type(String key){  
  222.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  223.              String type=sjedis.type(key);  
  224.              shardedJedisPool.returnResource(sjedis);  
  225.              return type;  
  226.          }  
  227.          /** 
  228.           * 查找所有匹配给定的模式的键 
  229.           * @param String key的表达式,*表示多个,?表示一个 
  230.           * */  
  231.          public Set<String> kyes(String pattern){  
  232.              Jedis jedis=jedisPool.getResource();  
  233.              Set<String> set =jedis.keys(pattern);  
  234.              jedisPool.returnResource(jedis);  
  235.              return set;  
  236.          }  
  237.      }  
  238.        
  239.      //TODO  
  240.      public class Sets{  
  241.            
  242.          /** 
  243.           * 向Set添加一条记录,如果member已存在返回0,否则返回1 
  244.           * @param String key 
  245.           * @param String member 
  246.           * @return 操作码,0或1 
  247.           * */  
  248.          public long sadd(String key,String member){  
  249.              Jedis jedis=jedisPool.getResource();  
  250.              long s =jedis.sadd(key, member);  
  251.              jedisPool.returnResource(jedis);  
  252.              return s;  
  253.          }  
  254.            
  255.          /** 
  256.           * 获取给定key中元素个数 
  257.           * @param String key 
  258.           * @return 元素个数 
  259.           * */  
  260.          public long scard(String key){  
  261.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  262.              long len=sjedis.scard(key);  
  263.              shardedJedisPool.returnResource(sjedis);  
  264.              return len;  
  265.          }  
  266.            
  267.          /** 
  268.           * 返回从第一组和所有的给定集合之间的差异的成员 
  269.           * @param String... keys 
  270.           * @return 差异的成员集合 
  271.           * */  
  272.          public Set<String> sdiff(String...keys){  
  273.              Jedis jedis=jedisPool.getResource();  
  274.              Set<String> set =jedis.sdiff(keys);  
  275.              jedisPool.returnResource(jedis);  
  276.              return set;  
  277.          }  
  278.            
  279.          /** 
  280.           * 这个命令等于sdiff,但返回的不是结果集,而是将结果集存储在新的集合中,如果目标已存在,则覆盖。 
  281.           * @param String newkey 新结果集的key 
  282.           * @param String... keys 比较的集合 
  283.           * @return 新集合中的记录数 
  284.           * **/  
  285.          public long sdiffstore(String newkey,String...keys){  
  286.              Jedis jedis=jedisPool.getResource();  
  287.              long s =jedis.sdiffstore(newkey, keys);  
  288.              jedisPool.returnResource(jedis);  
  289.              return s;  
  290.          }  
  291.            
  292.          /** 
  293.           * 返回给定集合交集的成员,如果其中一个集合为不存在或为空,则返回空Set 
  294.           * @param String... keys 
  295.           * @return 交集成员的集合 
  296.           * **/  
  297.          public Set<String> sinter(String...keys){  
  298.              Jedis jedis=jedisPool.getResource();  
  299.              Set<String> set =jedis.sinter(keys);  
  300.              jedisPool.returnResource(jedis);  
  301.              return set;  
  302.          }  
  303.            
  304.          /** 
  305.           * 这个命令等于sinter,但返回的不是结果集,而是将结果集存储在新的集合中,如果目标已存在,则覆盖。 
  306.           * @param String newkey 新结果集的key 
  307.           * @param String... keys 比较的集合 
  308.           * @return 新集合中的记录数 
  309.           * **/  
  310.          public long sinterstore(String newkey,String...keys){  
  311.              Jedis jedis=jedisPool.getResource();  
  312.              long s =jedis.sinterstore(newkey, keys);  
  313.              jedisPool.returnResource(jedis);  
  314.              return s;  
  315.          }  
  316.            
  317.          /** 
  318.           * 确定一个给定的值是否存在 
  319.           * @param String key 
  320.           * @param String member 要判断的值 
  321.           * @return 存在返回1,不存在返回0 
  322.           * **/  
  323.          public boolean sismember(String key,String member){  
  324.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  325.              boolean s= sjedis.sismember(key, member);  
  326.              shardedJedisPool.returnResource(sjedis);  
  327.              return s;  
  328.          }  
  329.            
  330.          /** 
  331.           * 返回集合中的所有成员 
  332.           * @param String key 
  333.           * @return 成员集合 
  334.           * */  
  335.          public Set<String> smembers(String key){  
  336.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  337.              Set<String> set= sjedis.smembers(key);  
  338.              shardedJedisPool.returnResource(sjedis);  
  339.              return set;  
  340.          }  
  341.            
  342.          /** 
  343.           * 将成员从源集合移出放入目标集合 
  344.           * <br/>如果源集合不存在或不包哈指定成员,不进行任何操作,返回0<br/> 
  345.           * 否则该成员从源集合上删除,并添加到目标集合,如果目标集合中成员已存在,则只在源集合进行删除 
  346.           * @param String srckey 源集合 
  347.           * @param String dstkey 目标集合 
  348.           * @param String member 源集合中的成员 
  349.           * @return 状态码,1成功,0失败 
  350.           * */         
  351.          public long smove(String srckey,String dstkey,String member){  
  352.              Jedis jedis=jedisPool.getResource();  
  353.              long s =jedis.smove(srckey, dstkey, member);  
  354.              jedisPool.returnResource(jedis);  
  355.              return s;  
  356.          }  
  357.            
  358.          /** 
  359.           * 从集合中删除成员 
  360.           * @param String key 
  361.           * @return 被删除的成员 
  362.           * */  
  363.          public String spop(String key){  
  364.              Jedis jedis=jedisPool.getResource();  
  365.              String s =jedis.spop(key);  
  366.              jedisPool.returnResource(jedis);  
  367.              return s;  
  368.          }  
  369.            
  370.          /** 
  371.           * 从集合中删除指定成员 
  372.           * @param String key 
  373.           * @param String member 要删除的成员 
  374.           * @return 状态码,成功返回1,成员不存在返回0 
  375.           * */  
  376.          public long srem(String key,String member){  
  377.              Jedis jedis=jedisPool.getResource();  
  378.              long s =jedis.srem(key,member);  
  379.              jedisPool.returnResource(jedis);  
  380.              return s;  
  381.          }  
  382.            
  383.          /** 
  384.           * 合并多个集合并返回合并后的结果,合并后的结果集合并不保存<br/> 
  385.           * @param String... keys 
  386.           * @return 合并后的结果集合 
  387.           * @see sunionstore 
  388.           * */  
  389.          public Set<String> sunion(String...keys){  
  390.              Jedis jedis=jedisPool.getResource();  
  391.              Set<String> set =jedis.sunion(keys);  
  392.              jedisPool.returnResource(jedis);  
  393.              return set;  
  394.          }  
  395.            
  396.          /** 
  397.           * 合并多个集合并将合并后的结果集保存在指定的新集合中,如果新集合已经存在则覆盖 
  398.           * @param String newkey 新集合的key 
  399.           * @param String... keys 要合并的集合 
  400.           * **/  
  401.          public long sunionstore(String newkey,String...keys){  
  402.              Jedis jedis=jedisPool.getResource();  
  403.              long s =jedis.sunionstore(newkey, keys);  
  404.              jedisPool.returnResource(jedis);  
  405.              return s;  
  406.          }  
  407.      }  
  408.        
  409.      //TODO  
  410.      public class SortSet{  
  411.            
  412.          /** 
  413.           * 向集合中增加一条记录,如果这个值已存在,这个值对应的权重将被置为新的权重 
  414.           * @param String key 
  415.           * @param double score 权重 
  416.           * @param String member 要加入的值, 
  417.           * @return 状态码 1成功,0已存在member的值 
  418.           * */  
  419.          public long zadd(String key,double score,String member){  
  420.              Jedis jedis=jedisPool.getResource();  
  421.              long s =jedis.zadd(key, score, member);  
  422.              jedisPool.returnResource(jedis);  
  423.              return s;  
  424.          }  
  425.            
  426.          /** 
  427.           * 获取集合中元素的数量 
  428.           * @param String key 
  429.           * @return 如果返回0则集合不存在 
  430.           * */  
  431.          public long zcard(String key){  
  432.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  433.              long len= sjedis.zcard(key);  
  434.              shardedJedisPool.returnResource(sjedis);  
  435.              return len;  
  436.          }  
  437.            
  438.          /** 
  439.           * 获取指定权重区间内集合的数量 
  440.           * @param String key 
  441.           * @param double min 最小排序位置 
  442.           * @param double max 最大排序位置 
  443.           * */  
  444.          public long zcount(String key,double min,double max){  
  445.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  446.              long len= sjedis.zcount(key, min, max);  
  447.              shardedJedisPool.returnResource(sjedis);  
  448.              return len;  
  449.          }  
  450.            
  451.          /** 
  452.           * 获得set的长度 
  453.           * @param key 
  454.           * @return 
  455.           */  
  456.          public long zlength(String key){  
  457.              long len = 0;  
  458.              Set<String> set = zrange(key,0,-1);  
  459.              len = set.size();  
  460.              return len;  
  461.          }  
  462.            
  463.          /** 
  464.           * 权重增加给定值,如果给定的member已存在 
  465.           * @param String key 
  466.           * @param double score 要增的权重 
  467.           * @param String member 要插入的值 
  468.           * @return 增后的权重 
  469.           * */  
  470.          public double zincrby(String key,double score,String member){  
  471.              Jedis jedis=jedisPool.getResource();  
  472.              double s =jedis.zincrby(key, score, member);  
  473.              jedisPool.returnResource(jedis);  
  474.              return s;  
  475.          }  
  476.            
  477.          /** 
  478.           * 返回指定位置的集合元素,0为第一个元素,-1为最后一个元素 
  479.           * @param String key 
  480.           * @param int start 开始位置(包含) 
  481.           * @param int end  结束位置(包含) 
  482.           * @return Set<String> 
  483.           * */  
  484.          public Set<String> zrange(String key,int start,int end){  
  485.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  486.              Set<String> set= sjedis.zrange(key, start, end);  
  487.              shardedJedisPool.returnResource(sjedis);  
  488.              return set;  
  489.          }  
  490.            
  491.          /** 
  492.           * 返回指定权重区间的元素集合 
  493.           * @param String key 
  494.           * @param double min 上限权重 
  495.           * @param double max 下限权重 
  496.           * @return Set<String> 
  497.           * */  
  498.          public Set<String> zrangeByScore(String key,double min,double max){  
  499.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  500.              Set<String> set= sjedis.zrangeByScore(key, min, max);  
  501.              shardedJedisPool.returnResource(sjedis);  
  502.              return set;  
  503.          }  
  504.            
  505.          /** 
  506.           * 获取指定值在集合中的位置,集合排序从低到高 
  507.           * @see zrevrank 
  508.           * @param String key 
  509.           * @param String member 
  510.           * @return long 位置 
  511.           * */  
  512.          public long zrank(String key,String member){  
  513.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  514.              long index= sjedis.zrank(key,member);  
  515.              shardedJedisPool.returnResource(sjedis);  
  516.              return index;  
  517.          }  
  518.            
  519.          /** 
  520.           * 获取指定值在集合中的位置,集合排序从低到高 
  521.           * @see zrank 
  522.           * @param String key 
  523.           * @param String member 
  524.           * @return long 位置 
  525.           * */  
  526.          public long zrevrank(String key,String member){  
  527.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  528.              long index= sjedis.zrevrank(key, member);  
  529.              shardedJedisPool.returnResource(sjedis);  
  530.              return index;  
  531.          }  
  532.            
  533.          /** 
  534.           * 从集合中删除成员 
  535.           * @param String key 
  536.           * @param String member 
  537.           * @return 返回1成功 
  538.           * */  
  539.          public long zrem(String key,String member){  
  540.              Jedis jedis=jedisPool.getResource();  
  541.              long s =jedis.zrem(key, member);  
  542.              jedisPool.returnResource(jedis);  
  543.              return s;  
  544.          }  
  545.            
  546.          /** 
  547.           * 删除 
  548.           * @param key 
  549.           * @return 
  550.           */  
  551.          public long zrem(String key){  
  552.              Jedis jedis=jedisPool.getResource();  
  553.              long s =jedis.del(key);  
  554.              jedisPool.returnResource(jedis);  
  555.              return s;  
  556.          }  
  557.            
  558.            
  559.          /** 
  560.           * 删除给定位置区间的元素 
  561.           * @param String key 
  562.           * @param int start 开始区间,从0开始(包含) 
  563.           * @param int end 结束区间,-1为最后一个元素(包含) 
  564.           * @return 删除的数量 
  565.           * */  
  566.          public long zremrangeByRank(String key,int start,int end){  
  567.              Jedis jedis=jedisPool.getResource();  
  568.              long s =jedis.zremrangeByRank(key, start, end);  
  569.              jedisPool.returnResource(jedis);  
  570.              return s;  
  571.          }  
  572.            
  573.          /** 
  574.           * 删除给定权重区间的元素 
  575.           * @param String key 
  576.           * @param double min 下限权重(包含) 
  577.           * @param double max 上限权重(包含) 
  578.           * @return 删除的数量 
  579.           * */  
  580.          public long zremrangeByScore(String key,double min,double max){  
  581.              Jedis jedis=jedisPool.getResource();  
  582.              long s =jedis.zremrangeByScore(key, min, max);  
  583.              jedisPool.returnResource(jedis);  
  584.              return s;  
  585.          }  
  586.            
  587.          /** 
  588.           * 获取给定区间的元素,原始按照权重由高到低排序 
  589.           * @param String key 
  590.           * @param int start 
  591.           * @param int end 
  592.           * @return Set<String> 
  593.           * */  
  594.          public Set<String> zrevrange(String key,int start,int end){  
  595.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  596.              Set<String> set= sjedis.zrevrange(key,start,end);  
  597.              shardedJedisPool.returnResource(sjedis);  
  598.              return set;  
  599.          }  
  600.            
  601.          /** 
  602.           * 获取给定值在集合中的权重 
  603.           * @param String key 
  604.           * @param memeber 
  605.           * @return double 权重 
  606.           * */  
  607.          public double zscore(String key,String memebr){  
  608.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  609.              Double score= sjedis.zscore(key,memebr);  
  610.              shardedJedisPool.returnResource(sjedis);  
  611.              if(score!=nullreturn score;  
  612.              return 0;  
  613.          }  
  614.      }  
  615.        
  616.      //TODO  
  617.      public class Hash{  
  618.            
  619.          /** 
  620.           * 从hash中删除指定的存储 
  621.           * @param String key 
  622.           * @param String fieid 存储的名字 
  623.           * @return 状态码,1成功,0失败 
  624.           * */  
  625.          public long hdel(String key,String fieid){  
  626.              Jedis jedis=jedisPool.getResource();  
  627.              long s =jedis.hdel(key, fieid);  
  628.              jedisPool.returnResource(jedis);  
  629.              return s;  
  630.          }  
  631.            
  632.          public long hdel(String key){  
  633.              Jedis jedis=jedisPool.getResource();  
  634.              long s =jedis.del(key);  
  635.              jedisPool.returnResource(jedis);  
  636.              return s;  
  637.          }  
  638.            
  639.          /** 
  640.           * 测试hash中指定的存储是否存在 
  641.           * @param String key 
  642.           * @param String fieid 存储的名字 
  643.           * @return 1存在,0不存在 
  644.           * */  
  645.          public boolean hexists(String key,String fieid){  
  646.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  647.              boolean s= sjedis.hexists(key, fieid);  
  648.              shardedJedisPool.returnResource(sjedis);  
  649.              return s;  
  650.          }  
  651.            
  652.          /** 
  653.           * 返回hash中指定存储位置的值 
  654.           * @param String key 
  655.           * @param String fieid 存储的名字 
  656.           * @return 存储对应的值 
  657.           * */  
  658.          public String hget(String key,String fieid){  
  659.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  660.              String s= sjedis.hget(key, fieid);  
  661.              shardedJedisPool.returnResource(sjedis);  
  662.              return s;  
  663.          }  
  664.            
  665.          /** 
  666.           * 以Map的形式返回hash中的存储和值 
  667.           * @param String key 
  668.           * @return Map<Strinig,String> 
  669.           * */  
  670.          public Map<String,String> hgetall(String key){  
  671.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  672.              Map<String,String> map= sjedis.hgetAll(key);  
  673.              shardedJedisPool.returnResource(sjedis);  
  674.              return map;  
  675.          }  
  676.            
  677.          /** 
  678.           * 在指定的存储位置加上指定的数字,存储位置的值必须可转为数字类型 
  679.           * @param String key 
  680.           * @param String fieid 存储位置 
  681.           * @param String long value 要增加的值,可以是负数 
  682.           * @return 增加指定数字后,存储位置的值 
  683.           * */  
  684.          public long hincrby(String key,String fieid,long value){  
  685.              Jedis jedis=jedisPool.getResource();  
  686.              long s =jedis.hincrBy(key, fieid, value);  
  687.              jedisPool.returnResource(jedis);  
  688.              return s;  
  689.          }  
  690.            
  691.          /** 
  692.           * 返回指定hash中的所有存储名字,类似Map中的keySet方法 
  693.           * @param String key 
  694.           * @return Set<String> 存储名称的集合 
  695.           * */  
  696.          public Set<String> hkeys(String key){  
  697.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  698.              Set<String> set= sjedis.hkeys(key);  
  699.              shardedJedisPool.returnResource(sjedis);  
  700.              return set;  
  701.          }  
  702.            
  703.          /** 
  704.           * 获取hash中存储的个数,类似Map中size方法 
  705.           * @param String key 
  706.           * @return long 存储的个数 
  707.           * */  
  708.          public long hlen(String key){  
  709.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  710.              long len= sjedis.hlen(key);  
  711.              shardedJedisPool.returnResource(sjedis);  
  712.              return len;  
  713.          }  
  714.            
  715.          /** 
  716.           * 根据多个key,获取对应的value,返回List,如果指定的key不存在,List对应位置为null 
  717.           * @param String key 
  718.           * @param String... fieids  存储位置 
  719.           * @return List<String> 
  720.           * */  
  721.          public List<String> hmget(String key,String...fieids){  
  722.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  723.              List<String> list= sjedis.hmget(key, fieids);  
  724.              shardedJedisPool.returnResource(sjedis);  
  725.              return list;  
  726.          }  
  727.            
  728.          /** 
  729.           * 添加对应关系,如果对应关系已存在,则覆盖 
  730.           * @param Strin key 
  731.           * @param Map<String,String> 对应关系 
  732.           * @return 状态,成功返回OK 
  733.           * */  
  734.          public String hmset(String key,Map<String,String> map){  
  735.              Jedis jedis=jedisPool.getResource();  
  736.              String s =jedis.hmset(key, map);  
  737.              jedisPool.returnResource(jedis);  
  738.              return s;  
  739.          }  
  740.            
  741.          /** 
  742.           * 添加一个对应关系 
  743.           * @param String key 
  744.           * @param String fieid 
  745.           * @param String value 
  746.           * @return 状态码 1成功,0失败,fieid已存在将更新,也返回0 
  747.           * **/  
  748.          public long hset(String key,String fieid,String value){  
  749.              Jedis jedis=jedisPool.getResource();  
  750.              long s =jedis.hset(key, fieid,value);  
  751.              jedisPool.returnResource(jedis);  
  752.              return s;  
  753.          }  
  754.            
  755.          /** 
  756.           * 添加对应关系,只有在fieid不存在时才执行 
  757.           * @param String key 
  758.           * @param String fieid 
  759.           * @param String value 
  760.           * @return 状态码 1成功,0失败fieid已存 
  761.           * **/  
  762.          public long hsetnx(String key,String fieid,String value){  
  763.              Jedis jedis=jedisPool.getResource();  
  764.              long s =jedis.hsetnx(key, fieid,value);  
  765.              jedisPool.returnResource(jedis);  
  766.              return s;  
  767.          }  
  768.            
  769.          /** 
  770.           * 获取hash中value的集合 
  771.           * @param String key 
  772.           * @return List<String> 
  773.           * */  
  774.          public List<String> hvals(String key){  
  775.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  776.              List<String> list= sjedis.hvals(key);  
  777.              shardedJedisPool.returnResource(sjedis);  
  778.              return list;  
  779.          }  
  780.      }  
  781.        
  782.      //TODO  
  783.      public class Strings{  
  784.          /** 
  785.           * 根据key获取记录 
  786.           * @param String key 
  787.           * @return 值 
  788.           * */  
  789.          public String get(String key){  
  790.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  791.              String value= sjedis.get(key);  
  792.              shardedJedisPool.returnResource(sjedis);  
  793.              return value;  
  794.          }  
  795.          /** 
  796.           * 根据key获取记录 
  797.           * @param byte[] key 
  798.           * @return 值 
  799.           * */  
  800.          public byte[] get(byte[] key){  
  801.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  802.              byte[] value= sjedis.get(key);  
  803.              shardedJedisPool.returnResource(sjedis);  
  804.              return value;  
  805.          }  
  806.            
  807.          /** 
  808.           * 添加有过期时间的记录 
  809.           * @param String key 
  810.           * @param int seconds  过期时间,以秒为单位 
  811.           * @param String value 
  812.           * @return String 操作状态 
  813.           * */  
  814.          public String setEx(String key,int seconds,String value){  
  815.              Jedis jedis=jedisPool.getResource();  
  816.              String str =jedis.setex(key, seconds, value);  
  817.              jedisPool.returnResource(jedis);  
  818.              return str;  
  819.          }   
  820.            
  821.            
  822.          /** 
  823.           * 添加有过期时间的记录 
  824.           * @param String key 
  825.           * @param int seconds  过期时间,以秒为单位 
  826.           * @param String value 
  827.           * @return String 操作状态 
  828.           * */  
  829.          public String setEx(byte[] key,int seconds,byte[] value){  
  830.              Jedis jedis=jedisPool.getResource();  
  831.              String str =jedis.setex(key, seconds, value);    
  832.              jedisPool.returnResource(jedis);  
  833.              return str;  
  834.          }   
  835.            
  836.          /** 
  837.           * 添加一条记录,仅当给定的key不存在时才插入 
  838.           * @param String key 
  839.           * @param String value 
  840.           * @return long 状态码,1插入成功且key不存在,0未插入,key存在 
  841.           * */  
  842.          public long setnx(String key,String value){  
  843.              Jedis jedis=jedisPool.getResource();  
  844.              long str =jedis.setnx(key, value);  
  845.              jedisPool.returnResource(jedis);  
  846.              return str;  
  847.          }  
  848.            
  849.          /** 
  850.           * 添加记录,如果记录已存在将覆盖原有的value 
  851.           * @param String key 
  852.           * @param String value 
  853.           * @return 状态码 
  854.           * */  
  855.          public String set(String key,String value){  
  856.              return set(SafeEncoder.encode(key),SafeEncoder.encode(value));  
  857.          }  
  858.            
  859.          /** 
  860.           * 添加记录,如果记录已存在将覆盖原有的value 
  861.           * @param byte[] key 
  862.           * @param byte[] value 
  863.           * @return 状态码 
  864.           * */  
  865.          public String set(byte[] key,byte[] value){  
  866.              Jedis jedis=jedisPool.getResource();  
  867.              String status =jedis.set(key, value);  
  868.              jedisPool.returnResource(jedis);  
  869.              return status;  
  870.          }  
  871.            
  872.          /** 
  873.           * 从指定位置开始插入数据,插入的数据会覆盖指定位置以后的数据<br/> 
  874.           * 例:String str1="123456789";<br/> 
  875.           * 对str1操作后setRange(key,4,0000),str1="123400009"; 
  876.           * @param String key 
  877.           * @param long offset 
  878.           * @param String value 
  879.           * @return long value的长度 
  880.           * */  
  881.          public long setRange(String key,long offset,String value){  
  882.              Jedis jedis=jedisPool.getResource();  
  883.              long len =jedis.setrange(key, offset, value);  
  884.              jedisPool.returnResource(jedis);  
  885.              return len;  
  886.          }  
  887.          /** 
  888.           * 在指定的key中追加value 
  889.           * @param String key 
  890.           * @param String value 
  891.           * @return long 追加后value的长度 
  892.           * **/  
  893.          public long append(String key,String value){  
  894.              Jedis jedis=jedisPool.getResource();  
  895.              long len =jedis.append(key, value);  
  896.              jedisPool.returnResource(jedis);  
  897.              return len;  
  898.          }  
  899.            
  900.          /** 
  901.           * 将key对应的value减去指定的值,只有value可以转为数字时该方法才可用 
  902.           * @param String key 
  903.           * @param long number 要减去的值 
  904.           * @return long 减指定值后的值 
  905.           * */  
  906.          public long decrBy(String key,long number){  
  907.              Jedis jedis=jedisPool.getResource();  
  908.              long len =jedis.decrBy(key,number);  
  909.              jedisPool.returnResource(jedis);  
  910.              return len;  
  911.          }  
  912.            
  913.          /** 
  914.           * <b>可以作为获取唯一id的方法</b><br/> 
  915.           * 将key对应的value加上指定的值,只有value可以转为数字时该方法才可用 
  916.           * @param String key 
  917.           * @param long number 要减去的值 
  918.           * @return long 相加后的值 
  919.           * */  
  920.          public long incrBy(String key,long number){  
  921.              Jedis jedis=jedisPool.getResource();  
  922.              long len =jedis.incrBy(key,number);  
  923.              jedisPool.returnResource(jedis);  
  924.              return len;  
  925.          }  
  926.            
  927.          /** 
  928.           * 对指定key对应的value进行截取 
  929.           * @param String key 
  930.           * @param long startOffset 开始位置(包含) 
  931.           * @param long endOffset 结束位置(包含) 
  932.           * @return String 截取的值 
  933.           * */  
  934.          public String getrange(String key,long startOffset,long endOffset){  
  935.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  936.              String value= sjedis.getrange(key, startOffset, endOffset);  
  937.              shardedJedisPool.returnResource(sjedis);  
  938.              return value;  
  939.          }  
  940.            
  941.          /** 
  942.           * 获取并设置指定key对应的value<br/> 
  943.           * 如果key存在返回之前的value,否则返回null 
  944.           * @param String key 
  945.           * @param String value 
  946.           * @return String 原始value或null 
  947.           * */  
  948.          public String getSet(String key,String value){  
  949.              Jedis jedis=jedisPool.getResource();  
  950.              String str =jedis.getSet(key, value);  
  951.              jedisPool.returnResource(jedis);  
  952.              return str;  
  953.          }  
  954.            
  955.          /** 
  956.           * 批量获取记录,如果指定的key不存在返回List的对应位置将是null 
  957.           * @param String keys 
  958.           * @return List<String> 值得集合 
  959.           * */  
  960.          public List<String> mget(String... keys){  
  961.              Jedis jedis=jedisPool.getResource();  
  962.              List<String> str =jedis.mget(keys);  
  963.              jedisPool.returnResource(jedis);  
  964.              return str;  
  965.          }  
  966.            
  967.          /** 
  968.           * 批量存储记录 
  969.           * @param String keysvalues 例:keysvalues="key1","value1","key2","value2"; 
  970.           * @return String 状态码 
  971.           * */  
  972.          public String mset(String...keysvalues){  
  973.              Jedis jedis=jedisPool.getResource();  
  974.              String str =jedis.mset(keysvalues);  
  975.              jedisPool.returnResource(jedis);  
  976.              return str;  
  977.          }  
  978.            
  979.          /** 
  980.           * 获取key对应的值的长度 
  981.           * @param String key 
  982.           * @return value值得长度 
  983.           * */  
  984.          public long strlen(String key){  
  985.              Jedis jedis=jedisPool.getResource();  
  986.              long len =jedis.strlen(key);  
  987.              jedisPool.returnResource(jedis);  
  988.              return len;  
  989.          }  
  990.      }  
  991.        
  992.      //TODO  
  993.      public class Lists{  
  994.          /** 
  995.           * List长度 
  996.           * @param String key 
  997.           * @return 长度 
  998.           * */  
  999.          public long llen(String key){  
  1000.              return llen(SafeEncoder.encode(key));  
  1001.          }  
  1002.            
  1003.          /** 
  1004.           * List长度 
  1005.           * @param byte[] key 
  1006.           * @return 长度 
  1007.           * */  
  1008.          public long llen(byte[] key){  
  1009.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  1010.              long count= sjedis.llen(key);  
  1011.              shardedJedisPool.returnResource(sjedis);  
  1012.              return count;  
  1013.          }  
  1014.            
  1015.          /** 
  1016.           * 覆盖操作,将覆盖List中指定位置的值 
  1017.           * @param byte[] key 
  1018.           * @param int index 位置 
  1019.           * @param byte[] value 值 
  1020.           * @return 状态码 
  1021.           * */  
  1022.          public String lset(byte[] key,int index,byte[] value){  
  1023.              Jedis jedis=jedisPool.getResource();  
  1024.              String status=jedis.lset(key, index, value);  
  1025.              jedisPool.returnResource(jedis);  
  1026.              return status;  
  1027.          }  
  1028.            
  1029.          /** 
  1030.           * 覆盖操作,将覆盖List中指定位置的值 
  1031.           * @param key 
  1032.           * @param int index 位置 
  1033.           * @param String value 值 
  1034.           * @return 状态码 
  1035.           * */  
  1036.          public String lset(String key,int index,String value){  
  1037.              return lset(SafeEncoder.encode(key),index,SafeEncoder.encode(value));  
  1038.          }  
  1039.            
  1040.          /** 
  1041.           * 在value的相对位置插入记录 
  1042.           * @param key 
  1043.           * @param LIST_POSITION  前面插入或后面插入 
  1044.           * @param String pivot 相对位置的内容 
  1045.           * @param String value 插入的内容 
  1046.           * @return 记录总数 
  1047.           * */  
  1048.          public long linsert(String key,LIST_POSITION where,String pivot,String value){  
  1049.              return linsert(SafeEncoder.encode(key),where,SafeEncoder.encode(pivot),SafeEncoder.encode(value));  
  1050.          }  
  1051.            
  1052.          /** 
  1053.           * 在指定位置插入记录 
  1054.           * @param String key 
  1055.           * @param LIST_POSITION  前面插入或后面插入 
  1056.           * @param byte[] pivot 相对位置的内容 
  1057.           * @param byte[] value 插入的内容 
  1058.           * @return 记录总数 
  1059.           * */  
  1060.          public long linsert(byte[] key,LIST_POSITION where,byte[] pivot,byte[] value){  
  1061.              Jedis jedis=jedisPool.getResource();  
  1062.              long count=jedis.linsert(key, where, pivot, value);  
  1063.              jedisPool.returnResource(jedis);  
  1064.              return count;  
  1065.          }  
  1066.            
  1067.          /** 
  1068.           * 获取List中指定位置的值 
  1069.           * @param String key 
  1070.           * @param int index 位置 
  1071.           * @return 值 
  1072.           * **/  
  1073.          public String lindex(String key,int index){  
  1074.              return SafeEncoder.encode(lindex(SafeEncoder.encode(key),index));  
  1075.          }  
  1076.            
  1077.          /** 
  1078.           * 获取List中指定位置的值 
  1079.           * @param byte[] key 
  1080.           * @param int index 位置 
  1081.           * @return 值 
  1082.           * **/  
  1083.          public byte[] lindex(byte[] key,int index){  
  1084.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  1085.              byte[] value=sjedis.lindex(key, index);  
  1086.              shardedJedisPool.returnResource(sjedis);  
  1087.              return value;  
  1088.          }  
  1089.            
  1090.          /** 
  1091.           * 将List中的第一条记录移出List 
  1092.           * @param String key 
  1093.           * @return 移出的记录 
  1094.           * */  
  1095.          public String lpop(String key){  
  1096.              return SafeEncoder.encode(lpop(SafeEncoder.encode(key)));  
  1097.          }  
  1098.          /** 
  1099.           * 将List中的第一条记录移出List 
  1100.           * @param byte[] key 
  1101.           * @return 移出的记录 
  1102.           * */  
  1103.          public byte[] lpop(byte[] key){  
  1104.              Jedis jedis=jedisPool.getResource();  
  1105.              byte[] value=jedis.lpop(key);  
  1106.              jedisPool.returnResource(jedis);  
  1107.              return value;  
  1108.          }  
  1109.          /** 
  1110.           * 将List中最后第一条记录移出List 
  1111.           * @param byte[] key 
  1112.           * @return 移出的记录 
  1113.           * */  
  1114.          public String rpop(String key){  
  1115.              Jedis jedis=jedisPool.getResource();  
  1116.              String value=jedis.rpop(key);  
  1117.              jedisPool.returnResource(jedis);  
  1118.              return value;  
  1119.          }  
  1120.          /** 
  1121.           * 向List尾部追加记录 
  1122.           * @param String key 
  1123.           * @param String value 
  1124.           * @return 记录总数 
  1125.           * */  
  1126.          public long lpush(String key,String value){  
  1127.              return lpush(SafeEncoder.encode(key),SafeEncoder.encode(value));  
  1128.          }  
  1129.            
  1130.          /** 
  1131.           * 向List头部追加记录 
  1132.           * @param String key 
  1133.           * @param String value 
  1134.           * @return 记录总数 
  1135.           * */  
  1136.          public long rpush(String key,String value){  
  1137.              Jedis jedis=jedisPool.getResource();  
  1138.              long count=jedis.rpush(key, value);  
  1139.              jedisPool.returnResource(jedis);  
  1140.              return count;  
  1141.          }  
  1142.          /** 
  1143.           * 向List中追加记录 
  1144.           * @param byte[] key 
  1145.           * @param byte[] value 
  1146.           * @return 记录总数 
  1147.           * */  
  1148.          public long lpush(byte[] key,byte[] value){  
  1149.              Jedis jedis=jedisPool.getResource();  
  1150.              long count=jedis.lpush(key, value);  
  1151.              jedisPool.returnResource(jedis);  
  1152.              return count;  
  1153.          }  
  1154.            
  1155.          /** 
  1156.           * 获取指定范围的记录,可以做为分页使用 
  1157.           * @param String key 
  1158.           * @param long start 
  1159.           * @param long end 
  1160.           * @return List 
  1161.           * */  
  1162.          public List<String> lrange(String key,long start,long end){  
  1163.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  1164.              List<String> list=sjedis.lrange(key, start,end);  
  1165.              shardedJedisPool.returnResource(sjedis);  
  1166.              return list;  
  1167.          }  
  1168.          /** 
  1169.           * 获取指定范围的记录,可以做为分页使用 
  1170.           * @param byte[] key 
  1171.           * @param int start 
  1172.           * @param int end 如果为负数,则尾部开始计算 
  1173.           * @return List 
  1174.           * */  
  1175.          public List<byte[]> lrange(byte[] key,int start,int end){  
  1176.              ShardedJedis sjedis=shardedJedisPool.getResource();  
  1177.              List<byte[]> list=sjedis.lrange(key, start,end);  
  1178.              shardedJedisPool.returnResource(sjedis);  
  1179.              return list;  
  1180.          }  
  1181.            
  1182.          /** 
  1183.           * 删除List中c条记录,被删除的记录值为value 
  1184.           * @param byte[] key 
  1185.           * @param int c 要删除的数量,如果为负数则从List的尾部检查并删除符合的记录 
  1186.           * @param byte[] value 要匹配的值 
  1187.           * @return 删除后的List中的记录数 
  1188.           * */  
  1189.          public long lrem(byte[] key,int c,byte[] value){  
  1190.              Jedis jedis=jedisPool.getResource();  
  1191.              long count=jedis.lrem(key, c,value);  
  1192.              jedisPool.returnResource(jedis);  
  1193.              return count;  
  1194.          }  
  1195.            
  1196.          /** 
  1197.           * 删除List中c条记录,被删除的记录值为value 
  1198.           * @param String key 
  1199.           * @param int c 要删除的数量,如果为负数则从List的尾部检查并删除符合的记录 
  1200.           * @param String value 要匹配的值 
  1201.           * @return 删除后的List中的记录数 
  1202.           * */  
  1203.          public long lrem(String key,int c,String value){  
  1204.              return lrem(SafeEncoder.encode(key),c,SafeEncoder.encode(value));  
  1205.          }  
  1206.            
  1207.          /** 
  1208.           * 算是删除吧,只保留start与end之间的记录 
  1209.           * @param byte[] key 
  1210.           * @param int start 记录的开始位置(0表示第一条记录) 
  1211.           * @param int end 记录的结束位置(如果为-1则表示最后一个,-2,-3以此类推) 
  1212.           * @return 执行状态码 
  1213.           * */  
  1214.          public String ltrim(byte[] key,int start,int end){  
  1215.              Jedis jedis=jedisPool.getResource();  
  1216.              String str=jedis.ltrim(key, start, end);  
  1217.              jedisPool.returnResource(jedis);  
  1218.              return str;  
  1219.          }  
  1220.          /** 
  1221.           * 算是删除吧,只保留start与end之间的记录 
  1222.           * @param String key 
  1223.           * @param int start 记录的开始位置(0表示第一条记录) 
  1224.           * @param int end 记录的结束位置(如果为-1则表示最后一个,-2,-3以此类推) 
  1225.           * @return 执行状态码 
  1226.           * */  
  1227.          public String ltrim(String key,int start,int end){  
  1228.              return ltrim(SafeEncoder.encode(key),start,end);  
  1229.          }  
  1230.      }  

  1231. 转载地址:http://blog.csdn.net/qdkfriend/article/details/7996476 Redis基础操作类 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值