对List类型的数据操作

1、#在指定Key所关联的List Value的尾部插入参数中给出的所有Values。如果该Key不存在,该命令将在插入之前创建一个与该Key关联的空链表,之后再将数据从链表的尾部插入。如果该键的Value不是链表类型,该命令将返回相关的错误信息。

void rpush(final String key, final String... string)

2、#在指定Key所关联的List Value的头部插入参数中给出的所有Values。如果该Key不存在,该命令将在插入之前创建一个与该Key关联的空链表,之后再将数据从链表的头部插入。如果该键的Value不是链表类型,该命令将返回相关的错误信息。

void lpush(final String key, final String... string)

3、#返回指定Key关联的链表中元素的数量,如果该Key不存在,则返回0。如果与该Key关联的Value的类型不是链表,则返回相关的错误信息。

long llen(final String key)

4、#返回指定范围内元素的列表。该命令的参数start和end都是0-based。即0表示链表头部(leftmost)的第一个元素。其中start的值也可以为负值,-1将表示链表中的最后一个元素,即尾部元素,-2表示倒数第二个并以此类推。该命令在获取元素时,start和end位置上的元素也会被取出。如果start的值大于链表中元素的数量,空链表将会被返回。如果end的值大于元素的数量,该命令则获取从start(包括start)开始,链表中剩余的所有元素。

List<byte[]> lrange(final String key, final long start, final long end)

5、#该命令将仅保留指定范围内的元素,从而保证链接中的元素数量相对恒定。start和stop参数都是0-based,0表示头部元素。和其他命令一样,start和stop也可以为负值,-1表示尾部元素。如果start大于链表的尾部,或start大于stop,该命令不错报错,而是返回一个空的链表,与此同时该Key也将被删除。如果stop大于元素的数量,则保留从start开始剩余的所有元素。

void ltrim(final String key, final long start, final long end)

6、#该命令将返回链表中指定位置(index)的元素,index是0-based,表示头部元素,如果index为-1,表示尾部元素。如果与该Key关联的不是链表,该命令将返回相关的错误信息。

byte[] lindex(final String key, final long index)

7、#设定链表中指定位置的值为新值,其中0表示第一个元素,即头部元素,-1表示尾部元素。如果索引值Index超出了链表中元素的数量范围,该命令将返回相关的错误信息。

void lset(final String key, final long index, final String value)

8、#在指定Key关联的链表中,删除前count个值等于value的元素。如果count大于0,从头向尾遍历并删除,如果count小于0,则从尾向头遍历并删除。如果count等于0,则删除链表中所有等于value的元素。如果指定的Key不存在,则直接返回0,返回被删除的元素数量。

long lrem(final String key, long count, final String value)

9、#返回并弹出指定Key关联的链表中的第一个元素,即头部元素。如果该Key不存,返回null。

byte[] lpop(final String key)

10、#返回并弹出指定Key关联的链表中的最后一个元素,即尾部元素。如果该Key不存,返回nil。

byte[] rpop(final String key)

11、#原子性的从与srckey键关联的链表尾部弹出一个元素,同时再将弹出的元素插入到与dstkey键关联的链表的头部。如果srckey键不存在,该命令将返回null,同时不再做任何其它的操作了。如果srckey和dstkey是同一个键,则相当于原子性的将其关联链表中的尾部元素移到该链表的头部。

byte[] rpoplpush(final String srckey, final String dstkey)

对Set类型的数据操作

1、向名称为key的set中添加元素member

sadd(key, member)

2、删除名称为key的set中的元素member

     srem(key, member)  

3、 随机返回并删除名称为key的set中一个元素

spop(key)

4、将member元素从名称为srckey的集合移到名称为dstkey的集合

 smove(srckey, dstkey, member) 

  5、返回名称为key的set的基数     

scard(key)

  6、测试member是否是名称为key的set的元素   

  sismember(key, member)

7、求交集  

  sinter(key1, key2,…key N) 

8、求交集并将交集保存到dstkey的集合  

  sinterstore(dstkey, key1, key2,…key N) 

9、求并集     

sunion(key1, key2,…key N) 

 10、求并集并将并集保存到dstkey的集合   

 sunionstore(dstkey, key1, key2,…key N)

11、求差集  

 sdiff(key1, key2,…key N) 

 12、求差集并将差集保存到dstkey的集合  

 sdiffstore(dstkey, key1, key2,…key N)

13、返回名称为key的set的所有元素   

  smembers(key) 

 14、随机返回名称为key的set的一个元素    

srandmember(key)

对Sorted Set类型的数据操作

1、向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。 

 zadd(key, score, member)

 2、删除名称为key的zset中的元素member 

    zrem(key, member)

 3、如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment     

zincrby(key, increment, member)

4、返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

     zrank(key, member) 

5、返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”     

zrevrank(key, member) 

6、返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素   

  zrange(key, start, end)

7、返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素    

 zrevrange(key, start, end)

8、返回名称为key的zset中score >= min且score <= max的所有元素   

  zrangebyscore(key, min, max)

9、返回名称为key的zset的基数    

 zcard(key)

10、返回名称为key的zset中元素element的score

     zscore(key, element)

11、删除名称为key的zset中rank >= min且rank <= max的所有元素    

zremrangebyrank(key, min, max)

12、删除名称为key的zset中score >= min且score <= max的所有元素  

   zremrangebyscore(key, min, max)