Команда Redis Zinterstore

Упорядоченное множество Redis

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

Команда Zinterstore очень полезна, когда нужно выполнять операции над множествами (например, вычисление пересечения) над упорядоченными множествами.

По умолчанию значение score элемента в результирующем множестве равно сумме значений score этого элемента во всех заданных множествах.

Синтаксис

Базовый синтаксис команды redis Zinterstore выглядит следующим образом:

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE sum|min|max]
  • destination: Имя результирующего упорядоченного множества.
  • numkeys: Количество упорядоченных множеств для пересечения.
  • key: Имена сортированных множеств, участвующих в вычислении.
  • WEIGHTS weight [weight ...]: Задает вес для каждого сортированного множества. Вес по умолчанию — 1.
  • AGGREGATE sum|min|max: Задает метод агрегации результата пересечения. По умолчанию —sum(sum).

Доступные версии

>= 2.0.0

Возвращаемое значение

Количество элементов, сохраненных в целевом результирующем множестве.

Примеры

# 有序集 mid_test
redis 127.0.0.1:6379> ZADD mid_test 70 "Li Lei"
(integer) 1
redis 127.0.0.1:6379> ZADD mid_test 70 "Han Meimei"
(integer) 1
redis 127.0.0.1:6379> ZADD mid_test 99.5 "Tom"
(integer) 1

# 另一个有序集 fin_test
redis 127.0.0.1:6379> ZADD fin_test 88 "Li Lei"
(integer) 1
redis 127.0.0.1:6379> ZADD fin_test 75 "Han Meimei"
(integer) 1
redis 127.0.0.1:6379> ZADD fin_test 99.5 "Tom"
(integer) 1

# 交集
redis 127.0.0.1:6379> ZINTERSTORE sum_point 2 mid_test fin_test
(integer) 3

# 显示有序集内所有成员及其分数值
redis 127.0.0.1:6379> ZRANGE sum_point 0 -1 WITHSCORES     
1) "Han Meimei"
2) "145"
3) "Li Lei"
4) "158"
5) "Tom"
6) "199"

Упорядоченное множество Redis

Другие расширения