https://redis.io/docs/data-types/probabilistic/top-k/
Top K é uma estrutura de dados probabilística na Redis Stack usada para estimar os elementos de maior classificação K
a partir de um stream.
“Maior classificação” neste caso significa “elementos com um maior número ou pontuação associada a eles”, onde a pontuação pode ser uma contagem de quantas vezes o elemento apareceu no stream - tornando a estrutura de dados perfeita para encontrar os elementos com a maior frequência em um stream. Uma aplicação muito comum é detectar anomalias de rede e ataques DDoS onde o Top K pode responder à pergunta: Há um aumento repentino no fluxo de solicitações para o mesmo endereço ou do mesmo IP?
De fato, há alguma sobreposição com a funcionalidade do Count-Min Sketch, mas as duas estruturas de dados têm suas diferenças e devem ser aplicadas para diferentes casos de uso.
Caso de uso
Esta aplicação responde a estas perguntas:
- Quais são as K hashtags mais mencionadas pelas pessoas nas últimas X horas?
- Quais são as K notícias com maior contagem de leitura/visualização hoje?
O fluxo de dados são as postagens de mídia social que chegam, das quais você analisa as diferentes hashtags.
O comando TOPK.LIST
tem uma complexidade de tempo O(K)
então se K
for pequeno, não há necessidade de manter um conjunto separado ou conjunto ordenado de todas as hashtags. Você pode consultar diretamente do Top K.