高炉。插入

语法
BF.INSERT key [CAPACITY capacity] [ERROR error]
  [EXPANSION expansion] [NOCREATE] [NONSCALING] ITEMS item [item
  ...]
可用:
Redis 堆栈 / Bloom 1.0.0
时间复杂度:
O(k * n),其中 k 是哈希函数的数量,n 是项目的数量

如果key不存在,然后将所有指定的项目添加到 Bloom Filter。

此命令类似于BF.MADD,但可以指定错误率、容量和扩展。它是BF.RESERVEBF.MADD.

必需参数

key

是要向其添加项目的 Bloom 过滤器的键名称。

如果key不存在,则会创建一个新的 Bloom 过滤器。

ITEMS item...

要添加的一个或多个项目。

可选参数

NOCREATE

指示如果过滤器尚不存在,则不应创建该过滤器。 如果过滤器尚不存在,则返回错误,而不是自动创建它。 这可用于需要严格区分过滤器创建和添加过滤器的情况。 指定NOCREATECAPACITYERROR.

CAPACITY capacity

指定所需的capacity以获取要创建的筛选器。 如果过滤器已存在,则忽略此参数。 如果过滤器是自动创建的并且此参数不存在,则模块级capacity被使用。 看BF.RESERVE有关此值的影响的更多信息。

ERROR error

指定error比率(如果尚不存在)。 如果过滤器是自动创建的,并且error未指定,则使用模块级错误率。 看BF.RESERVE,了解有关此值的格式的更多信息。

NONSCALING

防止过滤器在达到初始容量时创建其他子过滤器。 非缩放筛选器需要的内存略低于其缩放筛选器。在以下情况下,过滤器将返回错误capacity到达。

EXPANSION expansion

什么时候capacity,则会创建一个额外的子过滤器。 新子过滤器的大小等于最后一个子过滤器的大小乘以expansion,指定为正整数。

如果要存储在过滤器中的元素数量未知,请使用expansion2或更多以减少子过滤器的数量。 否则,请使用expansion1以减少内存消耗。默认值为2.

返回值

返回以下回复之一:

  • Array 回复,其中每个元素是以下选项之一:
    • Integer 回复,其中1表示项目添加成功,而0表示此类项目已添加到过滤器中(这可能是错误的)
    • [] 由于筛选器已满而无法添加项目
  • [],例如,当参数或键类型的数量错误时,以及当NOCREATE指定key不存在。

例子

向过滤器添加三个项目,然后使用 default 参数创建过滤器(如果尚不存在)。

BF.INSERT filter ITEMS foo bar baz

Add one item to a filter, then create the filter with a capacity of 10000 if it does not already exist.

BF.INSERT filter CAPACITY 10000 ITEMS hello

Add two items to a filter, then return error if the filter does not already exist.

BF.INSERT filter NOCREATE ITEMS foo bar

RATE THIS PAGE
Back to top ↑