Редис СКАРД

Redis Skard



«Наборы Redis — это неупорядоченные наборы строк, не содержащие дубликатов. Они очень похожи на наборы HashSet в Java, наборы Python и т. д. Самое главное, что основные операции, такие как добавление, удаление и проверка существования члена, очень эффективны, поскольку выполняются с временной сложностью O(1)».

Члены набора

Как уже упоминалось, наборы Redis содержат уникальные строковые элементы. Уже существующие элементы не будут приняты наборами Redis и будут проигнорированы. Кроме того, один набор может содержать до 4 миллиардов уникальных строк.









Характер набора Redis, заключающийся в хранении уникальных членов, удобен в нескольких реальных случаях использования.



  • Возможность выполнять стандартные операции набора, такие как объединение, пересечение и различие.
  • Отслеживание уникальных посетителей сайта
  • Представление отношений сущностей реального мира

Команда СКАРД

Команда SCARD, сокращение от Set Cardinality, возвращает количество элементов в наборе, хранящемся в заданном ключе. Он работает с временной сложностью O (1), что означает, что время, необходимое для выполнения команды SCARD, не зависит от количества членов в данном наборе. Это всегда занимает постоянное время.





Команда SCARD имеет очень простой синтаксис, как показано ниже.

СКАРД set_key

set_key: Ключ набора Redis



Эта команда возвращает целочисленное значение, которое представляет собой количество элементов в наборе.

Вариант использования — подсчет уникальных посетителей веб-сайта

Предположим, пиццерия YummyPizza поддерживает веб-сайт yummypizza.com, где люди могут заказать пиццу онлайн. Чтобы отслеживать свои продажи и клиентскую базу, они поддерживают базу данных Redis, в которой ежемесячно хранятся все уникальные посетители веб-сайта.

Всякий раз, когда пользователь посещает веб-сайт YummyPizza, идентификатор пользователя должен быть добавлен в базу данных Redis. Кроме того, один и тот же пользователь не должен быть добавлен в базу данных. Итак, идеальной структурой данных является набор Redis, в котором наборы хранят только уникальные элементы.

Предположим, что сайт посетили пять пользователей, и эти участники добавлены в базу данных Redis, как показано ниже.

SADD YummyPizzaПосетители:Октябрь Джон Мэри Раза Стойнис Принц

Как и ожидалось, было возвращено целое число 5, что означает, что пять членов добавляются к набору, хранящемуся по ключу « Вкусная пиццаПосетители:Октябрь.

В конце дня администраторам компании необходимо проверить общее количество уникальных посетителей сайта. Таким образом, необходимо рассчитать кардинальность множества. К счастью, ранее обсуждавшаяся команда SCARD оказывается полезной в этом типе сценария.

Давайте выполним команду SCARD на наборе, хранящемся в ключе « Вкусная пиццаПосетители:Октябрь.

Скард YummyPizzaПосетители:Октябрь

Выход равен 5, что означает пять уникальных элементов в указанном наборе. Эта команда выполняется слишком быстро. Неважно пять участников или 50000 участников; время выполнения будет постоянным.

Предположим, что указанный ключ набора не существует в базе данных Redis. Затем на выходе будет 0, как показано в следующем примере. В этом случае мы собираемся указать ключ, которого нет в базе данных.

scard Несуществующий ключ

Вывод

Подводя итог, набор Redis является идеальным кандидатом для хранения уникальных строк. Как уже говорилось, самое важное в наборе Redis заключается в том, что для выполнения большинства связанных операций с наборами требуется постоянное время. Команда SCARD является одной из наиболее часто используемых команд набора для вычисления общего количества элементов набора для данного набора, хранящегося в указанном ключе. Независимо от того, сколько элементов набора доступно, эта команда требует постоянного времени для предоставления вывода. Как показано в последнем примере, если ключ set не существует, вывод будет равен 0.