Операции с Sorted Set (Отсортированными Множествами) в Redis

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

Введение

В этой лабораторной работе вы изучите основные операции с Redis Sorted Set (отсортированным множеством). Вы начнете с подключения к Redis серверу и использования команды ZADD для добавления элементов с соответствующими оценками (scores) в Sorted Set. Это включает добавление новых элементов, обновление оценок существующих элементов и понимание вывода команды.

Затем вы узнаете, как извлекать диапазон элементов из Sorted Set по их индексу с помощью команды ZRANGE, получать ранг элемента с помощью ZRANK, увеличивать оценку элемента с помощью ZINCRBY и, наконец, удалять элементы из Sorted Set с помощью ZREM.

Добавление элементов с оценками с помощью ZADD

На этом шаге вы узнаете, как добавлять элементы с оценками в Redis Sorted Set (отсортированное множество) с помощью команды ZADD. Sorted Sets - это структура данных, которая хранит элементы, связанные с оценкой (score). Элементы упорядочены по своим оценкам, что позволяет извлекать их в отсортированном виде.

Сначала давайте подключимся к Redis серверу. Откройте терминал в LabEx VM (виртуальной машине). Вы должны находиться в каталоге ~/project. Теперь подключитесь к Redis серверу с помощью команды redis-cli:

redis-cli

Вы должны увидеть приглашение Redis: 127.0.0.1:6379>.

Теперь давайте добавим несколько элементов с оценками в Sorted Set с именем my_zset. Команда ZADD имеет следующий синтаксис:

ZADD key score member [score member ...]

Где:

  • key - это имя Sorted Set.
  • score - это оценка, связанная с элементом.
  • member - это элемент, который нужно добавить.

Давайте добавим три элемента в my_zset: "apple" с оценкой 1, "banana" с оценкой 2 и "cherry" с оценкой 3.

ZADD my_zset 1 apple 2 banana 3 cherry

Вы должны увидеть следующий вывод:

(integer) 3

Это указывает на то, что в Sorted Set было добавлено три элемента.

Важно выйти из Redis CLI после этого шага, чтобы убедиться, что команды зарегистрированы правильно. Чтобы выйти, введите:

exit

Добавление дополнительных элементов и обновление оценки с помощью ZADD

На этом шаге мы продолжим добавлять элементы в Sorted Set my_zset и обновим оценку существующего элемента.

Сначала снова подключитесь к Redis серверу:

redis-cli

Теперь давайте добавим еще один элемент, "date" с оценкой 2.5:

ZADD my_zset 2.5 date

Вы должны увидеть следующий вывод:

(integer) 1

Это указывает на то, что в Sorted Set был добавлен один элемент.

Вы также можете обновить оценку существующего элемента с помощью ZADD. Давайте обновим оценку "apple" до 1.5:

ZADD my_zset 1.5 apple

Вы должны увидеть следующий вывод:

(integer) 0

Это указывает на то, что новые элементы не были добавлены (потому что "apple" уже существовал), но оценка "apple" была обновлена.

Не забудьте выйти из Redis CLI:

exit

Получение диапазона по индексу с помощью ZRANGE

Теперь, когда мы заполнили наш Sorted Set my_zset, давайте узнаем, как извлекать элементы в пределах определенного диапазона с помощью команды ZRANGE.

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

redis-cli

Команда ZRANGE извлекает элементы из Sorted Set в пределах указанного диапазона индексов. Синтаксис следующий:

ZRANGE key start stop [WITHSCORES]

Где:

  • key - это имя Sorted Set.
  • start - это начальный индекс (включительно).
  • stop - это конечный индекс (включительно).
  • WITHSCORES (необязательно) включает оценки элементов в вывод.

Чтобы получить первые три элемента (индексы от 0 до 2) из my_zset, используйте следующую команду:

ZRANGE my_zset 0 2

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

1) "apple"
2) "banana"
3) "date"

Чтобы получить элементы вместе с их оценками, используйте опцию WITHSCORES:

ZRANGE my_zset 0 2 WITHSCORES

Вы должны увидеть следующий вывод:

1) "apple"
2) "1.5"
3) "banana"
4) "2"
5) "date"
6) "2.5"

Выйдите из Redis CLI:

exit

Получение ранга элемента с помощью ZRANK

На этом шаге вы узнаете, как определить ранг элемента в Sorted Set (отсортированном множестве) с помощью команды ZRANK. Ранг представляет собой позицию элемента в отсортированном порядке (начиная с 0 для наименьшей оценки).

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

redis-cli

Команда ZRANK имеет следующий синтаксис:

ZRANK key member

Где:

  • key - это имя Sorted Set.
  • member - это элемент, для которого вы хотите найти ранг.

Чтобы найти ранг "banana" в my_zset, используйте следующую команду:

ZRANK my_zset banana

Вы должны увидеть следующий вывод:

(integer) 1

Это указывает на то, что "banana" находится на ранге 1 в Sorted Set.

Выйдите из Redis CLI:

exit

Увеличение счета с помощью ZINCRBY и удаление элементов с помощью ZREM

На этом заключительном шаге вы узнаете, как увеличить оценку элемента с помощью ZINCRBY и удалить элементы с помощью ZREM.

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

redis-cli

Команда ZINCRBY увеличивает оценку элемента в отсортированном множестве (sorted set). Синтаксис:

ZINCRBY key increment member

Где:

  • key - это имя Sorted Set.
  • increment - это значение, на которое нужно увеличить оценку.
  • member - это элемент, оценку которого вы хотите увеличить.

Давайте увеличим оценку "banana" на 0.5:

ZINCRBY my_zset 0.5 banana

Вы должны увидеть следующий вывод:

"2.5"

Это указывает на то, что новая оценка "banana" равна 2.5.

Команда ZREM удаляет элемент из отсортированного множества. Синтаксис:

ZREM key member [member ...]

Где:

  • key - это имя Sorted Set.
  • member - это элемент, который вы хотите удалить.

Давайте удалим "banana" из my_zset:

ZREM my_zset banana

Вы должны увидеть следующий вывод:

(integer) 1

Это указывает на то, что один элемент был удален.

Выйдите из Redis CLI:

exit

Резюме

В этой лабораторной работе вы узнали, как использовать основные операции Redis Sorted Set (отсортированного множества). Вы использовали ZADD для добавления элементов с оценками, ZRANGE для получения диапазонов элементов, ZRANK для получения ранга элемента, ZINCRBY для увеличения оценок и ZREM для удаления элементов. Теперь у вас есть прочная основа для эффективного управления отсортированными множествами в Redis.