From c68df172a245519e8c28ce2b3bba292b83515ac3 Mon Sep 17 00:00:00 2001 From: Kostas Kyrimis Date: Fri, 26 Jun 2026 17:07:44 +0300 Subject: [PATCH] chore: add cf.add and cf.addnx docs Signed-off-by: Kostas Kyrimis --- .../command-reference/cuckoo-filter/cf.add.md | 48 ++++++++++++++++++ .../cuckoo-filter/cf.addnx.md | 49 +++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 docs/command-reference/cuckoo-filter/cf.add.md create mode 100644 docs/command-reference/cuckoo-filter/cf.addnx.md diff --git a/docs/command-reference/cuckoo-filter/cf.add.md b/docs/command-reference/cuckoo-filter/cf.add.md new file mode 100644 index 00000000..f05eb1bc --- /dev/null +++ b/docs/command-reference/cuckoo-filter/cf.add.md @@ -0,0 +1,48 @@ +--- +description: Learn how to use the CF.ADD command to add an item to a Cuckoo filter in Dragonfly. +--- +import PageTitle from '@site/src/components/PageTitle'; + +# CF.ADD + + + +## Syntax + + CF.ADD key item + +**Time complexity:** O(k + i), where k is the number of sub-filters and i is `MAXITERATIONS` + +**ACL categories:** @cuckoo + +Adds a single `item` to the Cuckoo filter at `key`. +If `key` does not exist, a new filter is created with default parameters. + +Unlike [`CF.ADDNX`](./cf.addnx.md), duplicate insertions are allowed — the same item can be added multiple times and will occupy a separate slot each time. +Use `CF.DEL` once per insertion to remove it. + +If the filter is full and expansion is disabled (`EXPANSION 0`), an error is returned. + +## Return + +[Integer reply](https://valkey.io/topics/protocol/#integers): + +- `1` if the item was successfully added. +- `0` if the filter is full and could not be expanded. + +## Examples + +```shell +dragonfly> CF.ADD cf Hello +(integer) 1 + +dragonfly> CF.ADD cf Hello +(integer) 1 + +dragonfly> CF.COUNT cf Hello +(integer) 2 +``` + +## See also + +[`CF.ADDNX`](./cf.addnx.md) | [`CF.RESERVE`](./cf.reserve.md) diff --git a/docs/command-reference/cuckoo-filter/cf.addnx.md b/docs/command-reference/cuckoo-filter/cf.addnx.md new file mode 100644 index 00000000..390b330b --- /dev/null +++ b/docs/command-reference/cuckoo-filter/cf.addnx.md @@ -0,0 +1,49 @@ +--- +description: Learn how to use the CF.ADDNX command to add an item to a Cuckoo filter only if it does not already exist. +--- +import PageTitle from '@site/src/components/PageTitle'; + +# CF.ADDNX + + + +## Syntax + + CF.ADDNX key item + +**Time complexity:** O(k + i), where k is the number of sub-filters and i is `MAXITERATIONS` + +**ACL categories:** @cuckoo + +Adds a single `item` to the Cuckoo filter at `key` only if it does not already exist. +If `key` does not exist, a new filter is created with default parameters. + +Unlike [`CF.ADD`](./cf.add.md), this command checks for the item before inserting. +Because Cuckoo filters can return false positives, `CF.ADDNX` may decline to insert +an item that was never actually added. + +If the filter is full and expansion is disabled (`EXPANSION 0`), an error is returned. + +## Return + +[Integer reply](https://valkey.io/topics/protocol/#integers): + +- `1` if the item was successfully added. +- `0` if the item already exists in the filter (or is a false positive match). + +## Examples + +```shell +dragonfly> CF.ADDNX cf Hello +(integer) 1 + +dragonfly> CF.ADDNX cf Hello +(integer) 0 + +dragonfly> CF.ADDNX cf World +(integer) 1 +``` + +## See also + +[`CF.ADD`](./cf.add.md) | [`CF.RESERVE`](./cf.reserve.md)