参见插入
语法
CF.INSERT key [CAPACITY capacity] [NOCREATE] ITEMS item [item ...]
- 可用:
- Redis 堆栈 / Bloom 1.0.0
- 时间复杂度:
- O(n * (k + i)),其中 n 是项数,k 是子筛选器数,i 是 maxIterations
将一个或多个项目添加到 cuckoo 筛选器,从而允许使用自定义容量创建筛选器(如果尚不存在)。
此命令类似于CF.ADD
,但可以添加多个项目并且可以指定容量。
必需参数
key
是 Cuckoo 过滤器向其添加项目的键名称。
如果key
不存在 - 创建新的 Cuckoo 过滤器。
ITEMS item...
要添加的一个或多个项目。
可选参数
CAPACITY capacity
指定新筛选器的所需容量(如果此筛选器尚不存在)。
如果过滤器已存在,则忽略此参数。
如果过滤器尚不存在且未指定此参数,则使用模块级默认容量(即 1024)创建过滤器。
看CF.RESERVE
有关 Cuckoo 过滤器容量的更多信息。
NOCREATE
如果指定,则在过滤器不存在时阻止自动创建过滤器(而是返回错误)。
此选项与CAPACITY
.
返回值
返回以下回复之一:
- Integer 回复的数组回复 - 其中“1”表示项目已成功添加到过滤器中,“-1”表示由于过滤器已满而未添加该项目。
- [] 时(参数无效、键类型错误等),并且
NOCREATE
指定key
不存在。
例子
redis> CF.INSERT cf CAPACITY 1000 ITEMS item1 item2
1) (integer) 1
2) (integer) 1
redis> CF.INSERT cf1 CAPACITY 1000 NOCREATE ITEMS item1 item2
(error) ERR not found
redis> 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