CF.INSERT
语法
CF.INSERT key [CAPACITY capacity] [NOCREATE] ITEMS item [item ...]
- 适用范围
- Redis Open Source / Bloom 1.0.0
- 时间复杂度
- O(n * (k + i)),其中 n 是项目数,k 是子过滤器的数量,i 是 maxIterations
- ACL 类别
-
@cuckoo,@write,@slow,
向布谷鸟过滤器(cuckoo filter)中添加一个或多个项目,如果过滤器尚不存在,可以指定自定义容量进行创建。
此命令类似于 CF.ADD,但可以添加多个项目并指定容量。
必需参数
key
是要添加项目的布谷鸟过滤器(cuckoo filter)的键名。
如果 key 不存在,则会创建一个新的布谷鸟过滤器。
ITEMS item...
要添加的一个或多个项目。
可选参数
CAPACITY capacity
如果过滤器尚不存在,则指定新过滤器的期望容量。
如果过滤器已存在,则忽略此参数。
如果过滤器尚不存在且未指定此参数,则会以模块级别的默认容量(即 1024)创建过滤器。
有关布谷鸟过滤器容量的更多信息,请参见 CF.RESERVE。
NOCREATE
如果指定此选项,则在过滤器不存在时阻止自动创建(将返回错误)。
此选项与 CAPACITY 互斥。
返回值
返回以下回复之一
- 数组回复,其中整数回复 "1" 表示项目已成功添加到过滤器,"-1" 表示过滤器已满,项目未能添加。
- 发生错误(参数无效、键类型错误等)时返回 [],当指定
NOCREATE且key不存在时也返回 []。
示例
redis> CF.INSERT cf CAPACITY 1000 ITEMS item1 item2
1) (integer) 1
2) (integer) 1redis> CF.INSERT cf1 CAPACITY 1000 NOCREATE ITEMS item1 item2
(error) ERR not foundredis> CF.RESERVE cf2 2 BUCKETSIZE 1 EXPANSION 0
OK
redis> CF.INSERT cf2 ITEMS 1 1 1 1
1) (integer) 1
2) (integer) 1
3) (integer) -1
4) (integer) -1