strings
SET
将key设定为指定字符串值,如果key已经保存了一个值,将会覆盖原来的值,并且忽略原来类型,当set执行成功后,之前设置的过期时间都会失效
SET EX 设置过期时间,单位秒,eg:set mykey myvalue EX 60,代表60秒后过期
SET PX 设置键key的过期时间,单位时毫秒
SET NX 只有键key不存在的时候才会设置key的值 eg:seg mykey myvalue2 NX 如果已经存在值,则不会生效
SET XX 只有键key存在的时候才会设置key的值 eg:seg mykey myvalue2 NX 如果不存在值,则不会生效
GET
获取key的值,如果value不是string,则返回错误,get只处理string类型的的value
INCR
字符串操作,执行原子加1,如果指定的key不存在,那么在执行incr操作之前,会先将它的值设定为0
执行这个操作的时候,key对应存储的字符串被解析为10进制的64位有符号整型数据
SETBIT
bit要么被设置,要么被清空,这个由value(只能是0或者1)来决定。当key不存在的时候,就创建一个新的字符串value
eg:SETBIT mykey 7 1
GETBIT
返回key对应的string在offset处的bit值 当offset超出了字符串长度的时候,这个字符串就被假定为由0比特填充的连续空间。当key不存在的时候,它就认为是一个空字符串,所以offset总是超出范围,然后value也被认为是由0比特填充的连续空间
eg:GETBIT mykey 7
hashs
HSET
设置 key 指定的哈希集中指定字段的值。<br>如果 key 指定的哈希集不存在,会创建一个新的哈希集并与 key 关联。<br>如果字段在哈希集中存在,它将被重写
返回结果:1 代表是一个新的字段,0:代表原来的map里面已经存在,覆盖了原来值
eg:HSET myhash field1 "Hello"
HGET
<span style="color: rgb(51, 51, 51); font-family: "Open Sans", Helvetica, sans-serif; font-size: 16px;">返回 key 指定的哈希集中该字段所关联的值</span>
eg:HSET myhash field1
HDEL
从 key 指定的哈希集中移除指定的域。在哈希集中不存在的域将被忽略。<br>如果 key 指定的哈希集不存在,它将被认为是一个空的哈希集,该命令将返回0
HLEN
返回 key 指定的哈希集包含的字段的数量
HVALS
返回 key 指定的哈希集中所有字段的值
Lists
LINSERT
把 value 插入存于 key 的列表中在基准值 pivot 的前面或后面。<br>当 key 不存在时,这个list会被看作是空list,任何操作都不会发生。<br>当 key 存在,但保存的不是一个list的时候,会返回error。
eg:<br>RPUSH mylist "Hello"<br>RPUSH mylist "World"<br>LINSERT mylist BEFORE "World" "There"<br>
LPUSH
将所有指定的值插入到存于 key 的列表的头部。如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误
EG:LPUSH mylist "world"
RPUSH
向存于 key 的列表的尾部插入所有指定的值。如果 key 不存在,那么会创建一个空的列表然后再进行 push 操作。 当 key 保存的不是一个列表,那么会返回一个错误
LRANGE
返回存储在 key 的列表里指定范围内的元素。 start 和 end 偏移量都是基于0的下标,即list的第一个元素下标是0(list的表头),第二个元素下标是1,以此类推。<br>偏移量也可以是负数,表示偏移量是从list尾部开始计数。 例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推
eg:LRANGE mylist 0 0
LPUSHX
只有当 key 已经存在并且存着一个 list 的时候,在这个 key 下面的 list 的头部插入 value。 与 LPUSH 相反,当 key 不存在的时候不会进行任何操作
RPUSHX
将值 value 插入到列表 key 的表尾, 当且仅当 key 存在并且是一个列表。 和 RPUSH 命令相反, 当 key 不存在时,RPUSHX 命令什么也不做
LPOP
移除并且返回 key 对应的 list 的第一个元素
eg:RPOP mylist
RPOP
移除并返回存于 key 的 list 的最后一个元素
RPOPLPUSH
原子性地返回并移除存储在 source 的列表的最后一个元素(列表尾部元素), 并把该元素放入存储在 destination 的列表的第一个元素位置(列表头部)。<br>例如:假设 source 存储着列表 a,b,c, destination存储着列表 x,y,z。 执行 RPOPLPUSH 得到的结果是 source 保存着列表 a,b ,而 destination 保存着列表 c,x,y,z。<br>如果 source 不存在,那么会返回 nil 值,并且不会执行任何操作。 如果 source 和 destination 是同样的,那么这个操作等同于移除列表最后一个元素并且把该元素放在列表头部, 所以这个命令也可以当作是一个旋转列表的命令
EG:RPOPLPUSH mylist myotherlist<br>"three"
LINDEX
返回列表里的元素的索引 index 存储在 key 里面。 下标是从0开始索引的,所以 0 是表示第一个元素, 1 表示第二个元素,并以此类推。 负数索引用于指定从列表尾部开始索引的元素。在这种方法下,-1 表示最后一个元素,-2 表示倒数第二个元素,并以此往前推。<br>当 key 位置的值不是一个列表的时候,会返回一个error
EG:LINDEX mylist 0
LSET
设置 index 位置的list元素的值为 value<br>当index超出范围时会返回一个error
EG:LSET mylist 0 "four"
LLEN
返回存储在 key 里的list的长度。 如果 key 不存在,那么就被看作是空list,并且返回长度为 0。 当存储在 key 里的值不是一个list的话,会返回error
SETS
SADD
添加一个或多个指定的member元素到集合的 key中.指定的一个或者多个元素member 如果已经在集合key中存在则忽略.如果集合key 不存在,则新建集合key,并添加member元素到集合key中.<br>如果key 的类型不是集合则返回错误
eg:SADD myset "Hello"
SMEMBERS
返回key集合所有的元素.<br>该命令的作用与使用一个参数的SINTER 命令作用相同.
SISMEMBER
返回成员 member 是否是存储的集合 key的成员
SPOP
从存储在key的集合中移除并返回一个或多个随机元素。<br>此操作与SRANDMEMBER类似,它从一个集合中返回一个或多个随机元素,但不删除元素
SREM
在key集合中移除指定的元素. 如果指定的元素不是key集合中的元素则忽略 如果key集合不存在则被视为一个空的集合,该命令返回0.<br>如果key的类型不是一个集合,则返回错误
sorted sets
数据结构:有序集合的分数使用双精度64位浮点数
ZADD
将所有指定成员添加到键为key有序集合(sorted set)里面。 添加时可以指定多个分数/成员(score/member)对。 如果指定添加的成员已经是有序集合里面的成员,则会更新改成员的分数(scrore)并更新到正确的排序位置。<br>如果key不存在,将会创建一个新的有序集合(sorted set)并将分数/成员(score/member)对添加到有序集合,就像原来存在一个空的有序集合一样。如果key存在,但是类型不是有序集合,将会返回一个错误应答
参数
<ul style="margin-top: 7px; margin-bottom: 7px; list-style-type: disc; padding-left: 25px; color: rgb(51, 51, 51); font-family: "Open Sans", Helvetica, sans-serif; font-size: 16px;"><li><strong>XX</strong>: 仅仅更新存在的成员,不添加新成员。</li><li><strong>NX</strong>: 不更新存在的成员。只添加新成员。</li><li><strong>CH</strong>: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 <em>changed</em> 的意思)。更改的元素是<strong>新添加的成员</strong>,已经存在的成员<strong>更新分数</strong>。 所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,<code class="highlighter-rouge" style="font-family: Menlo, Monaco, monospace; font-size: 1em;">ZADD</code>返回值只计算新添加成员的数量。</li><li><strong>INCR</strong>: 当<code class="highlighter-rouge" style="font-family: Menlo, Monaco, monospace; font-size: 1em;">ZADD</code>指定这个选项时,成员的操作就等同<a href="http://redis.cn/commands/zincrby.html" style="background-color: transparent; color: rgb(0, 102, 170);">ZINCRBY</a>命令,对成员的分数进行递增操作</li></ul>
ZREM
返回的是从有序集合中删除的成员个数,不包括不存在的成员