redis入门——redis常用命令

收录平时做项目常用到的一些Redis命令,记录一下,不定时更新

SCARD key

返回集合存储的key的基数 (集合元素的数量).

返回值

integer-reply: 集合的基数(元素的数量),如果key不存在,则返回 0.

举例
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SCARD myset
(integer) 2
redis>
SREM key member [member …]

在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>
SADD key member [member …]

添加一个或多个指定的member元素到集合的 key中.

指定的一个或者多个元素member 如果已经在集合key中存在则忽略.

如果集合key 不存在,则新建集合key,并添加member元素到集合key中.

如果key 的类型不是集合则返回错误.

返回值

integer-reply:返回新成功添加到集合里元素的数量,不包括已经存在于集合中的元素.

历史
  • = 2.4: 接受多个member 参数. Redis 2.4 以前的版本每次只能添加一个member元素.
例子
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>
SISMEMBER key member

返回成员 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 key [key …] timeout

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
LPUSH key value [value …]

将所有指定的值插入到存于 key 的列表的头部。

如果 key 不存在,那么在进行 push 操作前会创建一个空列表。 如果 key 对应的值不是一个 list 的话,那么会返回一个错误。

可以使用一个命令把多个元素 push 进入列表,只需在命令末尾加上多个指定的参数。

元素是从最左端的到最右端的、一个接一个被插入到 list 的头部。 所以对于这个命令例子 LPUSH mylist a b c,返回的列表是 c 为第一个元素, b 为第二个元素, a 为第三个元素。

返回值

integer-reply: 在 push 操作后的 list 长度。

历史
  • = 2.4: 接受多个 value 参数。版本老于 2.4 的 Redis 只能每条命令 push 一个值。
举例
redis> LPUSH mylist "world"
(integer) 1
redis> LPUSH mylist "hello"
(integer) 2
redis> LRANGE mylist 0 -1
1) "hello"
2) "world"
redis>

9.7更新

LRANGE key start stop

返回存储在 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>
ZADD key [NX|XX] [CH] [INCR] score member [score member …]

将所有指定成员添加到键为key有序集合(sorted set)里面。

添加时可以指定多个分数/成员(score/member)对。

如果指定添加的成员已经是有序集合里面的成员,则会更新改成员的分数(scrore)并更新到正确的排序位置。

如果key不存在,将会创建一个新的有序集合(sorted set)并将分数/成员(score/member)对添加到有序集合,就像原来存在一个空的有序集合一样。

如果key存在,但是类型不是有序集合,将会返回一个错误应答。

分数值是一个双精度的浮点型数字字符串。+inf和-inf都是有效值。

ZADD 参数(options) (>= Redis 3.0.2)

ZADD 命令在key后面分数/成员(score/member)对前面支持一些参数,他们是:

  • XX: 仅仅更新存在的成员,不添加新成员。
  • NX: 不更新存在的成员。只添加新成员。
  • CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 changed 的意思)。更改的元素是新添加的成员,已经存在的成员更新分数。 所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。
  • INCR: 当ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作。
返回值

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>
ZREM key member [member …]

当key存在,但是其不是有序集合类型,就返回一个错误。

返回值

integer-reply, 如下的整数:

返回的是从有序集合中删除的成员个数,不包括不存在的成员。

历史
  • = 2.4: 接受多个元素。在2.4之前的版本中,每次只能删除一个成员。
例子
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>
ZRANGE key start stop [WITHSCORES]

返回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。客户端库可以自由地返回更合适的数据类型(建议:具有(值,得分)数组/元组的数组)。

返回
  • array-reply:指定范围内的元素列表(如果给出WITHSCORES选项,则可选择使用它们的分数)。
  • 返回一个Set集合
例子
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZADD myzset 3 "three"
ZRANGE myzset 0 -1
ZRANGE myzset 2 3
ZRANGE myzset -2 -1
ZREVRANGE key start stop [WITHSCORES]

返回有序集key中,指定区间内的成员。

其中成员的位置按score值递减(从大到小)来排列。

具有相同score值的成员按字典序的反序排列。 除了成员按score值递减的次序排列这一点外,ZREVRANGE命令的其他方面和ZRANGE命令一样。

返回值
  • array-reply: 指定范围的元素列表(可选是否含有分数)。
    • 返回一个Set集合
例子
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>
ZCARD key

返回key的有序集元素个数。

返回值
  • integer-reply: key存在的时候,返回有序集的元素个数,否则返回0。
例子
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZADD myzset 2 "two"
(integer) 1
redis> ZCARD myzset
(integer) 2
redis>
ZSCORE key member

返回有序集key中,成员member的score值。

如果member元素不是有序集key的成员,或key不存在,返回nil。

返回值
  • bulk-string-reply: member成员的score值(double型浮点数),以字符串形式表示。
例子
redis> ZADD myzset 1 "one"
(integer) 1
redis> ZSCORE myzset "one"
"1"
redis>
了解更多

如果这些不能满足你,可以去官网查询相关命令,肯定有你需要的

http://www.redis.cn/commands.html

你可能感兴趣的:(Redis,redis入门,redis常用命令,redis命令,redis基础命令,redis数据结构)