--- acl_categories: - '@cuckoo' - '@write' - '@slow' arguments: - name: key type: key - name: item type: string categories: - docs - develop - stack - oss - rs - rc - oss - kubernetes - clients complexity: O(k + i), where k is the number of sub-filters and i is maxIterations description: Adds an item to a Cuckoo Filter if the item did not exist previously. group: cf hidden: false linkTitle: CF.ADDNX module: Bloom railroad_diagram: /images/railroad/cf.addnx.svg since: 1.0.0 stack_path: docs/data-types/probabilistic summary: Adds an item to a Cuckoo Filter if the item did not exist previously. syntax_fmt: CF.ADDNX key item title: CF.ADDNX --- Adds an item to a cuckoo filter if the item does not exist. This command is similar to the combination of [`CF.EXISTS`]({{< relref "commands/cf.exists/" >}}) and [`CF.ADD`]({{< relref "commands/cf.add/" >}}). It does not add an item into the filter if its fingerprint already exists. Notes: - This command is slower than [`CF.ADD`]({{< relref "commands/cf.add/" >}}) because it first checks whether the item exists. - Since [`CF.EXISTS`]({{< relref "commands/cf.exists/" >}}) can result in false positive, `CF.ADDNX` may not add an item because it is supposedly already exist, which may be wrong. ## Required arguments
key is key name for a cuckoo filter to add items to. If `key` does not exist - a new cuckoo filter is created.
item is an item to add.
## Examples {{< highlight bash >}} redis> CF.ADDNX cf item (integer) 1 redis> CF.ADDNX cf item (integer) 0 {{< / highlight >}} ## Redis Software and Redis Cloud compatibility | Redis
Software | Redis
Cloud | Notes | |:----------------------|:-----------------|:------| | ✅ Supported
| ✅ Flexible & Annual
✅ Free & Fixed | | ## Return information {{< multitabs id="cf-addnx-return-info" tab1="RESP2" tab2="RESP3" >}} One of the following: * [Integer reply]({{< relref "/develop/reference/protocol-spec#integers" >}}): `1` for successfully adding an item to the filter or `0` if the item's fingerprint already exists in the filter. * [Simple error reply]({{< relref "/develop/reference/protocol-spec#simple-errors" >}}) in these cases: invalid arguments, wrong key type, or when the filter is full. -tab-sep- One of the following: * [Boolean reply]({{< relref "/develop/reference/protocol-spec#booleans" >}}): `true` for successfully adding an item to the filter or `false` if the item's fingerprint already exists in the filter. * [Simple error reply]({{< relref "/develop/reference/protocol-spec#simple-errors" >}}) in these cases: invalid arguments, wrong key type, or when the filter is full. {{< /multitabs >}}