io.quarkus.redis.datasource.topk.TransactionalTopKCommands Maven / Gradle / Ivy
Show all versions of quarkus-redis-client Show documentation
package io.quarkus.redis.datasource.topk;
import java.util.Map;
import io.quarkus.redis.datasource.TransactionalRedisCommands;
/**
* Allows executing commands from the {@code top-k} group.
* These commands require the Redis Bloom module (this modules also
* include Top-K list support) to be installed in the Redis server.
*
* See the top-k command list for further information about
* these commands.
*
* This API is intended to be used in a Redis transaction ({@code MULTI}), thus, all command methods return {@code void}.
*
* @param the type of the key
* @param the type of the value stored in the sketch
*/
public interface TransactionalTopKCommands extends TransactionalRedisCommands {
/**
* Execute the command TOPK.ADD.
* Summary: Adds an item to the data structure. Multiple items can be added at once.
* If an item enters the Top-K list, the item which is expelled is returned. This allows dynamic heavy-hitter
* detection of items being entered or expelled from Top-K list.
* Group: top-k
*
*
* @param key the name of list where item is added, must not be {@code null}
* @param item the item to add, must not be {@code null}
*/
void topkAdd(K key, V item);
/**
* Execute the command TOPK.ADD.
* Summary: Adds an item to the data structure. Multiple items can be added at once.
* If an item enters the Top-K list, the item which is expelled is returned. This allows dynamic heavy-hitter
* detection of items being entered or expelled from Top-K list.
* Group: top-k
*
*
* @param key the name of list where item is added, must not be {@code null}
* @param items the items to add, must not be {@code null}, must not be empty, must not contain {@code null}
*/
void topkAdd(K key, V... items);
/**
* Execute the command TOPK.INCRBY.
* Summary: Increase the score of an item in the data structure by increment. Multiple items' score can be increased
* at once. If an item enters the Top-K list, the item which is expelled is returned.
* Group: top-k
*
*
* @param key the name of list where item is added, must not be {@code null}
* @param item the item to add, must not be {@code null}
* @param increment increment to current item score. Increment must be greater or equal to 1. Increment is
* limited to 100,000 to avoid server freeze.
*/
void topkIncrBy(K key, V item, int increment);
/**
* Execute the command TOPK.INCRBY.
* Summary: Increase the score of an item in the data structure by increment. Multiple items' score can be increased
* at once. If an item enters the Top-K list, the item which is expelled is returned.
* Group: top-k
*
*
* @param key the name of list where item is added, must not be {@code null}
* @param couples The map containing the item / increment, must not be {@code null}, must not be empty
*/
void topkIncrBy(K key, Map couples);
/**
* Execute the command TOPK.LIST.
* Summary: Return full list of items in Top K list.
* Group: top-k
*
*
* @param key the name of list, must not be {@code null}
*/
void topkList(K key);
/**
* Execute the command TOPK.LIST.
* Summary: Return full list of items in Top K list.
* Group: top-k
*
*
* @param key the name of list, must not be {@code null}
*/
void topkListWithCount(K key);
/**
* Execute the command TOPK.QUERY.
* Summary: Checks whether an item is one of Top-K items. Multiple items can be checked at once.
* Group: top-k
*
*
* @param key the name of list, must not be {@code null}
* @param item the item to check, must not be {@code null}
*/
void topkQuery(K key, V item);
/**
* Execute the command TOPK.QUERY.
* Summary: Checks whether an item is one of Top-K items. Multiple items can be checked at once.
* Group: top-k
*
*
* @param key the name of list, must not be {@code null}
* @param items the items to check, must not be {@code null}, must not contain {@code null}, must not be empty
*/
void topkQuery(K key, V... items);
/**
* Execute the command TOPK.RESERVE.
* Summary: Initializes a TopK with specified parameters.
* Group: top-k
*
*
* @param key the name of list, must not be {@code null}
* @param topk the number of top occurring items to keep.
*/
void topkReserve(K key, int topk);
/**
* Execute the command TOPK.RESERVE.
* Summary: Initializes a TopK with specified parameters.
* Group: top-k
*
*
* @param key the name of list, must not be {@code null}
* @param topk the number of top occurring items to keep.
* @param width the number of counters kept in each array. (Default 8)
* @param depth the number of arrays. (Default 7)
* @param decay the probability of reducing a counter in an occupied bucket. It is raised to power of it's counter
* (decay ^ bucket[i].counter). Therefore, as the counter gets higher, the chance of a reduction is
* being reduced. (Default 0.9)
*/
void topkReserve(K key, int topk, int width, int depth, double decay);
}