收录平时做项目常用到的一些Redis命令,记录一下,不定时更新
返回集合存储的key的基数 (集合元素的数量).
integer-reply: 集合的基数(元素的数量),如果key不存在,则返回 0.
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SCARD myset
(integer) 2
redis>
在key集合中移除指定的元素.
如果指定的元素不是key集合中的元素则忽略
如果key集合不存在则被视为一个空的集合,该命令返回0.
如果key的类型不是一个集合,则返回错误.
integer-reply:从集合中移除元素的个数,不包括不存在的成员.
= 2.4: 接受多个 member 元素参数. Redis 2.4 之前的版本每次只能移除一个元素.
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myset "three"
(integer) 1
redis> SREM myset "one"
(integer) 1
redis> SREM myset "four"
(integer) 0
redis> SMEMBERS myset
1) "three"
2) "two"
redis>
添加一个或多个指定的member元素到集合的 key中.
指定的一个或者多个元素member 如果已经在集合key中存在则忽略.
如果集合key 不存在,则新建集合key,并添加member元素到集合key中.
如果key 的类型不是集合则返回错误.
integer-reply:返回新成功添加到集合里元素的数量,不包括已经存在于集合中的元素.
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
redis> SMEMBERS myset
1) "World"
2) "Hello"
redis>
返回成员 member 是否是存储的集合 key的成员.
integer-reply,详细说明:
如果member元素是集合key的成员,则返回1
如果member元素不是key的成员,或者集合key不存在,则返回0
redis> SADD myset "one"
(integer) 1
redis> SISMEMBER myset "one"
(integer) 1
redis> SISMEMBER myset "two"
(integer) 0
redis>
BRPOP 是一个阻塞的列表弹出原语。
它是 RPOP 的阻塞版本,因为这个命令会在给定list无法弹出任何元素的时候阻塞连接。
该命令会按照给出的 key 顺序查看 list,并在找到的第一个非空 list 的尾部弹出一个元素。
请在 BLPOP 文档 中查看该命令的准确语义,因为 BRPOP 和 BLPOP 基本是完全一样的,除了它们一个是从尾部弹出元素,而另一个是从头部弹出元素。
多批量回复(multi-bulk-reply): 具体来说:
当没有元素可以被弹出时返回一个 nil 的多批量值,并且 timeout 过期。
当有元素弹出时会返回一个双元素的多批量值,其中第一个元素是弹出元素的
key,第二个元素是 value。
redis> DEL list1 list2
(integer) 0
redis> RPUSH list1 a b c
(integer) 3
redis> BRPOP list1 list2 0
1) "list1"
2) "c
将所有指定的值插入到存于 key 的列表的头部。
如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误。
可以使用一个命令把多个元素 push 进入列表,只需在命令末尾加上多个指定的参数。
元素是从最左端的到最右端的、一个接一个被插入到 list 的头部。 所以对于这个命令例子 LPUSH mylist a b c,返回的列表是 c 为第一个元素, b 为第二个元素, a 为第三个元素。
integer-reply: 在 push 操作后的 list 长度。
redis> LPUSH mylist "world"
(integer) 1
redis> LPUSH mylist "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"
redis>
9.7更新
返回存储在 key 的列表里指定范围内的元素。
start 和 end 偏移量都是基于0的下标,即list的第一个元素下标是0(list的表头),第二个元素下标是1,以此类推。
偏移量也可以是负数,表示偏移量是从list尾部开始计数。
例如, -1 表示列表的最后一个元素,-2 是倒数第二个,以此类推。
需要注意的是,如果你有一个list,里面的元素是从0到100,那么 LRANGE list 0 10
这个命令会返回11个元素,即最右边的那个元素也会被包含在内。
在你所使用的编程语言里,这一点可能是也可能不是跟那些求范围有关的函数都是一致的。(像Ruby的 Range.new,Array#slice 或者Python的 range() 函数。)
当下标超过list范围的时候不会产生error。
如果start比list的尾部下标大的时候,会返回一个空列表。
如果stop比list的实际尾部大的时候,Redis会当它是最后一个元素的下标。
array-reply: 指定范围里的列表元素。
redis> RPUSH mylist "one"
(integer) 1
redis> RPUSH mylist "two"
(integer) 2
redis> RPUSH mylist "three"
(integer) 3
redis> LRANGE mylist 0 0
1) "one"
redis> LRANGE mylist -3 2
1) "one"
2) "two"
3) "three"
redis> LRANGE mylist -100 100
1) "one"
2) "two"
3) "three"
redis> LRANGE mylist 5 10
(empty list or set)
redis>
将所有指定成员添加到键为key有序集合(sorted set)里面。
添加时可以指定多个分数/成员(score/member)对。
如果指定添加的成员已经是有序集合里面的成员,则会更新改成员的分数(scrore)并更新到正确的排序位置。
如果key不存在,将会创建一个新的有序集合(sorted set)并将分数/成员(score/member)对添加到有序集合,就像原来存在一个空的有序集合一样。
如果key存在,但是类型不是有序集合,将会返回一个错误应答。
分数值是一个双精度的浮点型数字字符串。+inf和-inf都是有效值。
ZADD 命令在key后面分数/成员(score/member)对前面支持一些参数,他们是:
Integer reply, 包括:
- 添加到有序集合的成员数量,不包括已经存在更新分数的成员。
如果指定INCR参数, 返回将会变成bulk-string-reply :
- 成员的新分数(双精度的浮点型数字)字符串。
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 1 "uno"
(integer) 1
redis> ZADD myzset 2 "two" 3 "three"
(integer) 2
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "uno"
4) "1"
5) "two"
6) "2"
7) "three"
8) "3"
redis>
当key存在,但是其不是有序集合类型,就返回一个错误。
integer-reply, 如下的整数:
返回的是从有序集合中删除的成员个数,不包括不存在的成员。
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREM myzset "two"
(integer) 1
redis> ZRANGE myzset 0 -1 WITHSCORES
1) "one"
2) "1"
3) "three"
4) "3"
redis>
返回key中存储的有序集合中指定的元素范围。
这些元素被认为是从最低分到最高分。字典顺序用于具有相同分数的元素。
start和stop都是从零开始的索引,其中0是第一个元素,1是下一个元素,依此类推。
它们也可以是负数,表示从排序集的末尾开始的偏移,-1是排序集的最后一个元素,-2是倒数第二个元素,依此类推。
start和stop是包含范围,因此例如ZRANGE myzset 0 1`将返回有序集的第一个和第二个元素。
超出范围的索引不会产生错误。
如果start大于有序集中的最大索引,或者start> stop,则返回空列表。
如果stop大于排序集的末尾,Redis会将其视为排序集的最后一个元素。
可以传递WITHSCORES选项,以便将元素的分数与元素一起返回。返回的列表将包含value1,score1,…,valueN,scoreN而不是value1,…,valueN。客户端库可以自由地返回更合适的数据类型(建议:具有(值,得分)数组/元组的数组)。
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZADD myzset 3 "three"
ZRANGE myzset 0 -1
ZRANGE myzset 2 3
ZRANGE myzset -2 -1
返回有序集key中,指定区间内的成员。
其中成员的位置按score值递减(从大到小)来排列。
具有相同score值的成员按字典序的反序排列。 除了成员按score值递减的次序排列这一点外,ZREVRANGE命令的其他方面和ZRANGE命令一样。
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZADD myzset 3 "three"
(integer) 1
redis> ZREVRANGE myzset 0 -1
1) "three"
2) "two"
3) "one"
redis> ZREVRANGE myzset 2 3
1) "one"
redis> ZREVRANGE myzset -2 -1
1) "two"
2) "one"
redis>
返回key的有序集元素个数。
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZCARD myzset
(integer) 2
redis>
返回有序集key中,成员member的score值。
如果member元素不是有序集key的成员,或key不存在,返回nil。
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZSCORE myzset "one"
"1"
redis>
如果这些不能满足你,可以去官网查询相关命令,肯定有你需要的
http://www.redis.cn/commands.html