All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.quarkus.redis.datasource.cuckoo.CuckooCommands Maven / Gradle / Ivy

There is a newer version: 3.17.5
Show newest version
package io.quarkus.redis.datasource.cuckoo;

import java.util.List;

import io.quarkus.redis.datasource.RedisCommands;

/**
 * Allows executing commands from the {@code cuckoo} group.
 * These commands require the Redis Bloom module (this modules also
 * include Cuckoo filters) to be installed in the Redis server.
 * 

* See the cuckoo command list for further information about * these commands. *

* * @param the type of the key * @param the type of the value stored in the filter */ public interface CuckooCommands extends RedisCommands { /** * Execute the command CF.ADD. * Summary: Adds the specified element to the specified Cuckoo filter. * Group: cuckoo *

* If the cuckoo filter does not exist, it creates a new one. * * @param key the key * @param value the value, must not be {@code null} */ void cfadd(K key, V value); /** * Execute the command CF.ADDNX. * Summary: Adds an item to a cuckoo filter if the item did not exist previously. * Group: cuckoo *

* If the cuckoo filter does not exist, it creates a new one. * * @param key the key * @param value the value, must not be {@code null} * @return {@code true} if the value was added to the filter, {@code false} otherwise */ boolean cfaddnx(K key, V value); /** * Execute the command CF.COUNT. * Summary: Returns the number of times an item may be in the filter. Because this is a probabilistic data structure, * this may not necessarily be accurate. * Group: cuckoo *

* * @param key the key * @param value the value, must not be {@code null} * @return a Uni producing the count of possible matching copies of the value in the filter */ long cfcount(K key, V value); /** * Execute the command CF.DEL. * Summary: Deletes an item once from the filter. If the item exists only once, it will be removed from the filter. * If the item was added multiple times, it will still be present. * Group: cuckoo *

* * @param key the key * @param value the value, must not be {@code null} * @return a Uni producing {@code true} if the value was removed from the filter, {@code false} otherwise * (the value was not found in the filter) */ boolean cfdel(K key, V value); /** * Execute the command CF.EXISTS. * Summary: Check if an item exists in a Cuckoo filter * Group: cuckoo *

* * @param key the key * @param value the value, must not be {@code null} * @return a Uni producing {@code true} if the value was found in the filter, {@code false} otherwise. */ boolean cfexists(K key, V value); /** * Execute the command CF.INSERT. * Summary: Adds one or more items to a cuckoo filter, allowing the filter to be created with a custom capacity if * it does not exist yet. * Group: cuckoo *

* * @param key the key * @param values the values, must not be {@code null}, must not be empty, must not contain {@code null} */ void cfinsert(K key, V... values); /** * Execute the command CF.INSERT. * Summary: Adds one or more items to a cuckoo filter, allowing the filter to be created with a custom capacity if * it does not exist yet. * Group: cuckoo *

* * @param key the key * @param args the extra arguments * @param values the values, must not be {@code null}, must not be empty, must not contain {@code null} */ void cfinsert(K key, CfInsertArgs args, V... values); /** * Execute the command CF.INSERTNX. * Summary: Adds one or more items to a cuckoo filter, allowing the filter to be created with a custom capacity if * it does not exist yet. * Group: cuckoo *

* * @param key the key * @param values the values, must not be {@code null}, must not be empty, must not contain {@code null} * @return a list of boolean. For each added value, the corresponding boolean is {@code true} if the * value has been added (non-existing) or {@code false} if the value was already present in the filter. */ List cfinsertnx(K key, V... values); /** * Execute the command CF.INSERTNX. * Summary: Adds one or more items to a cuckoo filter, allowing the filter to be created with a custom capacity if * it does not exist yet. * Group: cuckoo *

* * @param key the key * @param args the extra arguments * @param values the values, must not be {@code null}, must not be empty, must not contain {@code null} * @return a list of boolean. For each added value, the corresponding boolean is {@code true} if the * value has been added (non-existing) or {@code false} if the value was already present in the filter. */ List cfinsertnx(K key, CfInsertArgs args, V... values); /** * Execute the command CF.MEXISTS. * Summary: Check if an item exists in a Cuckoo filter * Group: cuckoo *

* * @param key the key * @param values the values, must not be {@code null}, must not contain {@code null}, must not be empty * @return a list of boolean indicating, for each corresponding value, if the value exists in the * filter or not. */ List cfmexists(K key, V... values); /** * Execute the command CF.RESERVE. * Summary: Create a Cuckoo Filter as key with a single sub-filter for the initial amount of capacity for items. * Group: cuckoo *

* * @param key the key * @param capacity the capacity */ void cfreserve(K key, long capacity); /** * Execute the command CF.RESERVE. * Summary: Create a Cuckoo Filter as key with a single sub-filter for the initial amount of capacity for items. * Group: cuckoo *

* * @param key the key * @param capacity the capacity * @param args the extra parameters */ void cfreserve(K key, long capacity, CfReserveArgs args); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy