Фильтрация URL поверх Redis: фильтры Блума или структура данных HyperLogLog - PullRequest
0 голосов
/ 22 февраля 2019

Я хочу реализовать фильтрацию URL-адресов для распределенной системы сканирования поверх базы данных Redis (например, не посещать один и тот же URL-адрес дважды, поэтому мне нужно каким-то образом отслеживать их все с минимальным отпечатком памяти, в этом нет необходимостичтобы сохранить полные URL, просто проверьте, посещался ли какой-либо конкретный URL или нет).Фильтры Блума звучат прямо в этом случае, и я видел собственный модуль для Redis, реализующий фильтры Блума.Но он также имеет встроенную структуру данных HyperLogLog, поэтому мне интересно, какая из них является лучшим выбором в моем сценарии.

1 Ответ

0 голосов
/ 24 февраля 2019

Фильтр Блума полностью отличается от HyperLogLog.Фильтр Блума используется для проверки наличия дублированных элементов, а HyperLogLog используется для различного подсчета.В вашем случае вам следует использовать фильтр Блума.

Также см. этот вопрос для их различий.

...