BITOP的

语法
BITOP <AND | OR | XOR | NOT> destkey key [key ...]
从以下位置开始可用:
2.6.0
时间复杂度:
O(N)
ACL 类别:
@write, @bitmap, @slow,

在多个键(包含字符串值)之间执行按位运算,并且 将结果存储在 Destination Key 中。

BITOPcommand 支持四种按位运算:ANDORXORNOT,因此调用命令的有效形式为:

  • BITOP AND destkey srckey1 srckey2 srckey3 ... srckeyN
  • BITOP OR destkey srckey1 srckey2 srckey3 ... srckeyN
  • BITOP XOR destkey srckey1 srckey2 srckey3 ... srckeyN
  • BITOP NOT destkey srckey

正如你所看到的,NOT 很特殊,因为它只需要一个输入键,因为它 执行位的反转,因此它仅作为一元运算符有意义。

作的结果始终存储在destkey.

处理不同长度的字符串

当在不同长度的字符串之间执行作时,所有 短于集合中最长字符串的字符串被视为 零填充到最长字符串的长度。

这同样适用于不存在的键,它们被视为 零字节,最长字符串的长度。

例子

SET 键 1 “foobar” SET 键 2 “abcdef” BITOP AND dest key1 key2 获取目标

模式:使用位图的实时指标

BITOP是对BITCOUNT命令 文档。 可以组合不同的位图以获得目标位图,其中 执行 Population count作。

请参阅名为“使用 Redis 快速、轻松地使用实时指标”的文章 bitmaps“来了解有趣的用例。

性能注意事项

BITOP是一个可能很慢的命令,因为它在 O(N) 时间内运行。 针对长 Importing 字符串运行它时应小心。

对于涉及大量输入的实时指标和统计信息,一种很好的方法是 要使用副本(启用了 replica-read-only 选项),其中 bit-wise 执行作以避免阻塞 Master 实例。

RESP2/RESP3 回复

Integer reply:存储在目标 key 中的字符串大小等于最长的输入字符串的大小。
为本页评分
返回顶部 ↑