一、关于KEY的部分命令:  

  EXISTS KEY:检查给定 key 是否存在; 

  MOVE KEY DB:将当前数据库的 key 移动到给定的数据库 db 当中;

  EXPIRE KEY + 秒钟:为给定 key 设置生存时间,当 key 过期时(生存时间为 0 ),它会被自动删除(key *命令查看不到该记录了);

  TTL KEY :以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live),当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,以秒为单位,返回 key 的剩余生存时间;

  TYPE KEY:返回 key 所储存的值的类型;

 

二、String的部分命令(单值单value):

  APPEND key value :如果键 key 已经存在并且它的值是一个字符串, APPEND 命令将把 value 追加到键 key 现有值的末尾;如果 key 不存在, APPEND 就简单地将键 key 的值设为 value , 就像执行 SET key value 一样。

  STRLEN key : 返回键 key 储存的字符串值的长度。命令返回字符串值的长度。当键 key 不存在时, 命令返回 0 。当 key 储存的不是字符串值时, 返回一个错误。

  GETRANGE key start end:返回键 key 储存的字符串值的指定部分, 字符串的截取范围由 start 和 end 两个偏移量决定 (包括 start 和 end 在内)。

  SETEX key seconds value: 将键 key 的值设置为 value , 并将键 key 的生存时间设置为 seconds 秒钟;如果键 key 已经存在, 那么 SETEX 命令将覆盖已有的值。

  SETNE key value :只在键 key 不存在的情况下, 将键 key 的值设置为 value ;若键 key 已经存在, 则 SETNX 命令不做任何动作。

  MSET key value[key value......] :如果某个给定键已经存在, 那么 MSET 将使用新值去覆盖旧值。MSET 是一个原子性(atomic)操作, 所有给定键都会在同一时间内被设置, 不会出现某些键被设置了但是另一些键没有被设置的情况。

  MGET key[key......]:返回给定的一个或多个字符串键的值。如果给定的字符串键里面, 有某个键不存在, 那么这个键的值将以特殊值 nil 表示。

  MSETNX key value[key value]:当且仅当所有给定键都不存在时, 为所有给定键设置值。即使只有一个给定键已经存在, MSETNX 命令也会拒绝执行对所有键的设置操作。

 

三、List(单值多value):

  LPUSH key value[key value......]:将一个或多个值 value 插入到列表 key 的表头,如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头: 比如说,对空列表 mylist 执行命令 LPUSH mylist a b c ,列表的值将是 c b a ,这等同于原子性地执行 LPUSH mylist a 、 LPUSH mylist b 和 LPUSH mylist c 三个命令。

  RPUSH key value[key value......]:将一个或多个值 value 插入到列表 key 的表尾(最右边)。如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾:比如对一个空列表 mylist 执行 RPUSH mylist a b c ,得出的结果列表为 a b c ,等同于执行命令 RPUSH mylist a、 RPUSH mylist b 、 RPUSH mylist c 。

  LRANGE key start stop:返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1表示列表的第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。

  LPOP list:移除并返回列表 list的头元素。

  RPOP list:移除并返回列表 key 的尾元素。

  LINDEX key:返回列表 key 中,下标为 index 的元素。下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1表示列表的第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。如果 key 不是列表类型,返回一个错误。

  LLEN key:返回列表 key 的长度。如果 key 不存在,则 key 被解释为一个空列表,返回 0 .如果 key 不是列表类型,返回一个错误。

  LREM key count value:根据参数 count 的值,移除列表中与参数 value 相等的元素。count 的值可以是以下几种:

  • count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。
  • count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。
  • count = 0 : 移除表中所有与 value 相等的值。

  LTRIM key start stop:对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。举个例子,执行命令 LTRIM list 0 2 ,表示只保留列表 list 的前三个元素,其余元素全部删除。下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1表示列表的第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。当 key 不是列表类型时,返回一个错误。

  RPOPLPUSH source destinction:命令 RPOPLPUSH 在一个原子时间内,执行以下两个动作:

  • 将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。
  • 将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。

  举个例子,你有两个列表 source 和 destination , source 列表有元素 a, b, c , destination 列表有元素 x, y, z ,执行 RPOPLPUSH source destination 之后, source 列表包含元素 a, b , destination 列表包含元素 c, x, y, z ,并且元素 c 会被返回给客户端。如果 source 不存在,值 nil 被返回,并且不执行其他动作。如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。

  LSET key index value:将列表 key 下标为 index 的元素的值设置为 value 。当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。

  LINSERT key before|after poive value:将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。当 pivot 不存在于列表 key 时,不执行任何操作。当 key 不存在时, key 被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误。

 

四、set(不允许出现重复的元素):

  SADD key member[member......]: 将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。假如 key 不存在,则创建一个只包含 member 元素作成员的集合。

  SMEMBERS key:返回集合 key 中的所有成员。不存在的 key 被视为空集合。

  SISMEMBER key member:判断 member 元素是否集合 key 的成员。

  SCARD key:返回集合 key 的基数(集合中元素的数量)。

  SREM key member[member]: 移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。

  SRANDMEMBER key[count]:如果命令执行时,只提供了 key 参数,那么返回集合中的一个随机元素。

  • 如果 count 为正数,且小于集合基数,那么命令返回一个包含 count 个元素的数组,数组中的元素各不相同。如果 count 大于等于集合基数,那么返回整个集合。
  • 如果 count 为负数,那么命令返回一个数组,数组中的元素可能会重复出现多次,而数组的长度为 count 的绝对值。

  SPOP key:移除并返回集合中的一个随机元素。

  SMOVE source destinction member:将 member 元素从 source 集合移动到 destination 集合。SMOVE 是原子性操作。如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。

  SDIFF key[key......]:返回一个集合的全部成员,该集合是所有给定集合之间的差集。

  SINTER key[key......]:返回一个集合的全部成员,该集合是所有给定集合的交集。

  SUNION key[key......]:返回一个集合的全部成员,该集合是所有给定集合的并集。