跳到主要内容

分析

位图 (BITMAP)

位计数 (BITCOUNT)

语法

    BITCOUNT key [start end [BYTE | BIT]]

计算字符串中已设置的位数(总体计数)。

Resp 回复

整数回复:设置为 1 的位数。


位字段 (BITFIELD)

语法

BITFIELD key [GET encoding offset | [OVERFLOW <WRAP | SAT | FAIL>]
<SET encoding offset value | INCRBY encoding offset increment>
[GET encoding offset | [OVERFLOW <WRAP | SAT | FAIL>]
<SET encoding offset value | INCRBY encoding offset increment>
...]]

此命令将 Garnet 字符串视为位数组,能够处理不同位宽和任意非(必需)对齐偏移量的特定整数字段。实际上,使用此命令,您可以将例如一个位偏移量为 1234 的有符号 5 位整数设置为特定值,从偏移量 4567 检索一个 31 位无符号整数。
同样,该命令处理指定整数的增量和减量,提供用户可配置的保证且定义明确的溢出和下溢行为。

Resp 回复

整数回复:存储在偏移量处的位值。


只读位字段 (BITFIELD_RO)

语法

BITFIELD_RO key [GET encoding offset [GET encoding offset ...]]

BITFIELD 命令的只读变体。它与原始 BITFIELD 类似,但只接受 GET 子命令,并且可以安全地用于只读副本。

Resp 回复

数组回复:每个条目都是相同位置给出的子命令的相应结果。


位操作与 (BITOP AND)

语法

BITOP AND destkey srckey1 srckey2 srckey3 ... srckeyN

在多个键(包含字符串值)之间执行按位与操作,并将结果存储在目标键中。

Resp 回复

整数回复:存储在目标键中的字符串大小,等于最长输入字符串的大小。


位操作非 (BITOP NOT)

语法

BITOP NOT destkey srckey

在多个键(包含字符串值)之间执行按位非操作,并将结果存储在目标键中。

Resp 回复

整数回复:存储在目标键中的字符串大小,等于最长输入字符串的大小。


位位置 (BITPOS)

语法

    BITPOS key bit [start [end [BYTE | BIT]]]    

返回字符串中第一个设置为 1 或 0 的位的位置。

Resp 回复

以下之一

  • 整数回复:根据请求,第一个设置为 1 或 0 的位的位置。
  • 整数回复:-1。如果位参数为 1 且字符串为空或仅由零字节组成。

获取位 (GETBIT)

语法

   GETBIT key offset 

返回存储在键中的字符串值中偏移量处的位值。

Resp 回复

存储在偏移量处的位值,以下之一:

  • 整数回复:0。
  • 整数回复:1。

设置位 (SETBIT)

语法

    SETBIT key offset value

设置或清除存储在键中的字符串值中偏移量处的位。根据值(可以是 0 或 1),位被设置或清除。当键不存在时,会创建一个新的字符串值。

Resp 回复

整数回复:存储在偏移量处的原始位值。


基数计数 (HYPERLOGLOG)

添加元素到基数计数 (PFADD)

语法

PFADD <key> <element-1> ... <element-n>

将所有元素参数添加到存储在第一个参数指定变量名处的 HyperLogLog 数据结构中。

Resp 回复

整数回复:如果至少有一个 HyperLogLog 内部寄存器被更改,则为 1。否则为 0。


基数计数 (PFCOUNT)

语法

PFCOUNT key [key ...]

当使用单个键调用时,返回由存储在指定变量处的 HyperLogLog 数据结构计算的近似基数,如果变量不存在则为 0。
当使用多个键调用时,通过内部合并存储在提供的键中的 HyperLogLog 到一个临时 HyperLogLog 中,返回传递的 HyperLogLog 集合的近似基数。

Resp 回复

整数回复:通过 PFADD 观察到的近似唯一元素数量。


合并基数计数 (PFMERGE)

语法

PFMERGE <destination-key> <source-key-1> ... <source-key-n>

将多个 HyperLogLog 值合并为一个唯一值,该值将近似于源 HyperLogLog 结构所观察到的集合的联合的基数。
计算出的合并 HyperLogLog 被设置到目标变量中,如果该变量不存在则创建(默认为一个空的 HyperLogLog)。

Resp 回复

简单字符串回复:该命令只返回 OK。


发布/订阅 (PUB/SUB)

按模式订阅 (PSUBSCRIBE)

语法

PSUBSCRIBE <pattern-1> ... <pattern-n>

客户端订阅给定的模式。

支持全局样式模式

h?llo 订阅 hellohallohxllo
h*llo 订阅 hlloheeeello
h[ae]llo 订阅 hellohallo,但不订阅 hillo
如果要按字面匹配特殊字符,请使用 \ 进行转义。

Resp 回复

成功时,此命令不返回任何内容。相反,对于每个模式,都会推送一条消息,其中第一个元素是字符串 psubscribe,作为命令成功的确认。


发布 (PUBLISH)

语法

PUBLISH <channel> <message>

向给定频道发布消息。

Resp 回复

整数回复:收到消息的客户端数量。


发布/订阅频道 (PUBSUB CHANNELS)

语法

PUBSUB CHANNELS [pattern]

列出当前活跃的频道。活跃频道是指有一个或多个订阅者(不包括订阅模式的客户端)的发布/订阅频道。

Resp 回复

数组回复:活跃频道列表,可选地匹配指定的模式。


发布/订阅模式数量 (PUBSUB NUMPAT)

语法

PUBSUB NUMPAT

返回客户端订阅的唯一模式数量(使用 PSUBSCRIBE 命令执行)。

Resp 回复

整数回复:所有客户端订阅的模式数量。


发布/订阅订阅者数量 (PUBSUB NUMSUB)

语法

PUBSUB NUMSUB [channel [channel ...]]

返回指定频道的订阅者数量(不包括订阅模式的客户端)。

Resp 回复

数组回复:每个频道的订阅者数量,每个偶数元素(包括第 0 个)是频道名称,每个奇数元素是订阅者数量。


取消按模式订阅 (PUNSUBSCRIBE)

语法

PUNSUBSCRIBE <pattern-1> ... <pattern-n>

客户端取消订阅给定的模式,如果未给出任何模式,则取消订阅所有模式。

未指定模式时,客户端将取消订阅所有先前订阅的模式。在这种情况下,将为每个取消订阅的模式向客户端发送一条消息。

Resp 回复

成功时,此命令不返回任何内容。相反,对于每个模式,都会推送一条消息,其中第一个元素是字符串 punsubscribe,作为命令成功的确认。


订阅 (SUBSCRIBE)

语法

SUBSCRIBE channel [channel ...]

客户端订阅指定的频道。

Resp 回复

成功时,此命令不返回任何内容。相反,对于每个频道,都会推送一条消息,其中第一个元素是字符串 subscribe,作为命令成功的确认。


取消订阅 (UNSUBSCRIBE)

语法

UNSUBSCRIBE [channel [channel ...]]

客户端取消订阅给定的频道,如果未给出任何频道,则取消订阅所有频道。

Resp 回复

成功时,此命令不返回任何内容。相反,对于每个频道,都会推送一条消息,其中第一个元素是字符串 unsubscribe,作为命令成功的确认。