Операции с множествами Redis

RedisRedisBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этой лабораторной работе вы изучите операции с множествами Redis, сосредоточившись на манипулировании неупорядоченными коллекциями уникальных строк. Вы узнаете, как добавлять элементы в множество с помощью команды SADD, выполнять объединение множеств с помощью SUNION, находить общие элементы с помощью SINTER и определять различия между множествами с помощью SDIFF. Наконец, вы узнаете, как сохранять результаты операций с множествами для последующего использования.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL redis(("Redis")) -.-> redis/RedisGroup(["Redis"]) redis/RedisGroup -.-> redis/access_cli("Connect Using CLI") redis/RedisGroup -.-> redis/insert_set("Add Set Element") redis/RedisGroup -.-> redis/verify_set("Check Set Membership") redis/RedisGroup -.-> redis/view_set("List Set Members") subgraph Lab Skills redis/access_cli -.-> lab-552104{{"Операции с множествами Redis"}} redis/insert_set -.-> lab-552104{{"Операции с множествами Redis"}} redis/verify_set -.-> lab-552104{{"Операции с множествами Redis"}} redis/view_set -.-> lab-552104{{"Операции с множествами Redis"}} end

Добавление элементов в множество с помощью SADD

В этом шаге вы узнаете, как добавлять элементы в множество Redis с помощью команды SADD. Множества в Redis – это неупорядоченные коллекции уникальных строк. Это означает, что каждый элемент в множестве должен быть уникальным, и порядок, в котором элементы добавляются в множество, не сохраняется.

Команда SADD добавляет один или несколько элементов (members) в множество. Если указанный элемент уже является членом множества, он игнорируется. Если множество не существует, создается новое множество с указанным(и) элементом(ами).

Начнем с подключения к серверу Redis. Откройте свой терминал и выполните следующую команду:

redis-cli

Эта команда откроет интерфейс командной строки Redis (Redis command-line interface).

Теперь давайте добавим несколько элементов в множество с именем my_set. Выполните следующую команду:

SADD my_set "apple" "banana" "cherry"

Эта команда добавит строки "apple", "banana" и "cherry" в множество my_set. Вывод будет целым числом, представляющим количество элементов, которые были успешно добавлены в множество. В этом случае вывод должен быть 3.

(integer) 3

Теперь давайте попробуем добавить элемент, который уже существует в множестве. Выполните следующую команду:

SADD my_set "apple"

Эта команда попытается добавить строку "apple" в множество my_set. Однако, поскольку "apple" уже является членом множества, она будет проигнорирована. Вывод будет 0, указывающий на то, что новые элементы не были добавлены.

(integer) 0

Чтобы убедиться, что элементы были добавлены в множество, вы можете использовать команду SMEMBERS. Выполните следующую команду:

SMEMBERS my_set

Эта команда вернет список всех членов множества my_set. Вывод должен быть:

1) "cherry"
2) "banana"
3) "apple"

Обратите внимание, что порядок элементов в выводе может отличаться от порядка, в котором они были добавлены. Это связано с тем, что множества являются неупорядоченными коллекциями.

Наконец, выйдите из Redis CLI (Redis command-line interface):

exit

Важно выйти из redis-cli, чтобы ваши команды были зарегистрированы (logged).

Теперь вы успешно добавили элементы в множество Redis с помощью команды SADD. Это фундаментальная операция для работы с множествами в Redis, и она будет использоваться в следующих шагах для выполнения более сложных операций.

Вычисление объединения с помощью SUNION

В этом шаге вы узнаете, как вычислить объединение нескольких множеств Redis с помощью команды SUNION. Объединение множеств – это новое множество, содержащее все уникальные элементы, присутствующие в любом из исходных множеств.

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

redis-cli

Теперь добавьте элементы в my_set2:

SADD my_set2 "banana" "grape" "orange"

Эта команда добавляет "banana", "grape" и "orange" в my_set2. Вывод должен быть 3.

(integer) 3

Теперь, когда у нас есть два множества, my_set (содержащее "apple", "banana", "cherry") и my_set2 (содержащее "banana", "grape", "orange"), мы можем вычислить их объединение с помощью команды SUNION. Выполните следующую команду:

SUNION my_set my_set2

Эта команда вернет объединение my_set и my_set2. Вывод будет списком всех уникальных элементов, присутствующих в любом из множеств:

1) "orange"
2) "grape"
3) "apple"
4) "banana"
5) "cherry"

Обратите внимание, что "banana" появляется только один раз в результате, даже если он присутствует как в my_set, так и в my_set2. Это связано с тем, что множества содержат только уникальные элементы. Порядок элементов в результате не гарантируется.

Наконец, выйдите из Redis CLI (Redis command-line interface):

exit

Команда SUNION возвращает объединение множеств непосредственно клиенту. Если вы хотите сохранить результат в новом множестве, вы можете использовать команду SUNIONSTORE, которая не рассматривается в этой лабораторной работе.

В этом шаге вы узнали, как вычислить объединение нескольких множеств Redis с помощью команды SUNION. Это полезная операция для объединения данных из нескольких множеств в одно множество.

Вычисление пересечения с помощью SINTER

В этом шаге вы узнаете, как вычислить пересечение нескольких множеств Redis с помощью команды SINTER. Пересечение множеств – это новое множество, содержащее только те элементы, которые присутствуют во всех исходных множествах.

Подключитесь к серверу Redis, используя:

redis-cli

У нас уже есть два множества: my_set (содержащее "apple", "banana", "cherry") и my_set2 (содержащее "banana", "grape", "orange"). Давайте вычислим их пересечение с помощью команды SINTER. Выполните следующую команду:

SINTER my_set my_set2

Эта команда вернет пересечение my_set и my_set2. Вывод будет списком всех элементов, которые присутствуют в обоих множествах:

1) "banana"

Обратите внимание, что только "banana" присутствует как в my_set, так и в my_set2. Следовательно, пересечение двух множеств – это множество, содержащее только "banana".

Давайте добавим третье множество с именем my_set3 и добавим в него "banana" и "apple".

SADD my_set3 "banana" "apple"

Вывод должен быть 2.

(integer) 2

Теперь давайте вычислим пересечение my_set, my_set2 и my_set3. Выполните следующую команду:

SINTER my_set my_set2 my_set3

Эта команда вернет пересечение всех трех множеств. Вывод будет:

1) "banana"

Только "banana" присутствует во всех трех множествах.

Наконец, выйдите из Redis CLI (Redis command-line interface):

exit

Команда SINTER возвращает пересечение множеств непосредственно клиенту. Если вы хотите сохранить результат в новом множестве, вы можете использовать команду SINTERSTORE, о которой вы узнаете позже.

В этом шаге вы узнали, как вычислить пересечение нескольких множеств Redis с помощью команды SINTER. Это полезная операция для поиска общих элементов между несколькими множествами.

Вычисление разности с помощью SDIFF

В этом шаге вы узнаете, как вычислить разность между множествами Redis с помощью команды SDIFF. Разность между множествами – это новое множество, содержащее только те элементы, которые присутствуют в первом множестве, но отсутствуют в любом из последующих множеств.

Подключитесь к серверу Redis, используя:

redis-cli

У нас есть три множества: my_set (содержащее "apple", "banana", "cherry"), my_set2 (содержащее "banana", "grape", "orange") и my_set3 (содержащее "banana", "apple"). Давайте вычислим разность между my_set и my_set2 с помощью команды SDIFF. Выполните следующую команду:

SDIFF my_set my_set2

Эта команда вернет разность между my_set и my_set2. Вывод будет списком всех элементов, которые присутствуют в my_set, но отсутствуют в my_set2:

1) "apple"
2) "cherry"

"apple" и "cherry" находятся в my_set, но не в my_set2. "banana" находится в обоих множествах, поэтому он не включен в результат.

Теперь давайте вычислим разность между my_set и обоими множествами my_set2 и my_set3. Выполните следующую команду:

SDIFF my_set my_set2 my_set3

Эта команда вернет разность между my_set и объединением my_set2 и my_set3. Вывод будет:

1) "cherry"

"apple" находится в my_set, но также и в my_set3, поэтому он исключен. "banana" находится в my_set, но также и в my_set2 и my_set3, поэтому он исключен. Только "cherry" находится исключительно в my_set.

Наконец, выйдите из Redis CLI (Redis command-line interface):

exit

Команда SDIFF возвращает разность множеств непосредственно клиенту. Если вы хотите сохранить результат в новом множестве, вы можете использовать команду SDIFFSTORE (не рассматривается в этой лабораторной работе).

В этом шаге вы узнали, как вычислить разность между множествами Redis с помощью команды SDIFF. Это полезная операция для поиска элементов, которые являются уникальными для определенного множества.

Сохранение результатов с помощью SINTERSTORE

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

Подключитесь к серверу Redis, используя:

redis-cli

У нас есть три множества: my_set (содержащее "apple", "banana", "cherry"), my_set2 (содержащее "banana", "grape", "orange") и my_set3 (содержащее "banana", "apple"). В предыдущем шаге мы вычислили пересечение этих множеств и обнаружили, что только "banana" присутствует во всех трех.

Теперь давайте сохраним результат пересечения my_set, my_set2 и my_set3 в новое множество с именем intersection_set с помощью команды SINTERSTORE. Выполните следующую команду:

SINTERSTORE intersection_set my_set my_set2 my_set3

Эта команда вычислит пересечение my_set, my_set2 и my_set3 и сохранит результат в новом множестве с именем intersection_set. Вывод будет целым числом, представляющим количество элементов в результирующем множестве. В этом случае вывод должен быть 1, потому что пересечение содержит только один элемент ("banana").

(integer) 1

Чтобы убедиться, что пересечение было сохранено правильно, вы можете использовать команду SMEMBERS для просмотра элементов intersection_set. Выполните следующую команду:

SMEMBERS intersection_set

Эта команда вернет список всех элементов множества intersection_set. Вывод должен быть:

1) "banana"

Это подтверждает, что пересечение my_set, my_set2 и my_set3 было успешно сохранено в intersection_set.

Наконец, выйдите из Redis CLI (Redis command-line interface):

exit

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

Итог

В этой лабораторной работе вы узнали, как добавлять элементы в множество Redis с помощью команды SADD. Множества Redis – это неупорядоченные коллекции уникальных строк, что означает, что каждый элемент должен быть уникальным, а порядок не сохраняется.

Команда SADD добавляет один или несколько элементов в множество, игнорируя дубликаты. В лабораторной работе было продемонстрировано добавление элементов в множество, наблюдение за возвращаемым значением, указывающим количество добавленных элементов, и проверка содержимого множества с помощью SMEMBERS. Порядок вывода SMEMBERS может отличаться от порядка вставки из-за неупорядоченной природы множеств. Вы также узнали, как вычислять объединения множеств с помощью SUNION, находить общие элементы с помощью SINTER, определять различия между множествами с помощью SDIFF и сохранять результаты операций над множествами для последующего использования с помощью SINTERSTORE. Не забывайте выходить из redis-cli после каждого шага, чтобы ваши команды были зарегистрированы.