Redis Zinterstore-Befehl

Redis-sortierte Menge

Redis Zinterstore wird verwendet, um die Schnittmenge mehrerer Sorted Sets zu berechnen und das Ergebnis in einem neuen Sorted Set zu speichern.

Der Zinterstore-Befehl ist sehr nützlich, wenn Sie Mengenoperationen (zum Beispiel die Berechnung der Schnittmenge) auf Sorted Sets ausführen müssen.

Standardmäßig ist der Score-Wert eines Elements in der Ergebnismenge die Summe der Score-Werte dieses Elements über alle angegebenen Mengen hinweg.

Syntax

Die grundlegende Syntax des Redis-Befehls Zinterstore lautet wie folgt:

ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE sum|min|max]
  • destination: Der Name des resultierenden Sorted Sets.
  • numkeys: Die Anzahl der Sorted Sets, deren Schnittmenge berechnet werden soll.
  • key: Die Namen der an der Berechnung beteiligten Sorted Sets.
  • WEIGHTS weight [weight ...]: Gibt die Gewichtung für jedes Sorted Set an. Die Standardgewichtung ist 1.
  • AGGREGATE sum|min|max: Gibt die Aggregationsmethode des Schnittmengenergebnisses an. Standard istsum(sum).

Verfügbare Versionen

>= 2.0.0

Rückgabewert

Die Anzahl der Mitglieder, die im Ziel-Ergebnissatz gespeichert werden.

Beispiele

# 有序集 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-sortierte Menge

Andere Erweiterungen