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


