Dieser Artikel vermittelt Ihnen relevantes Wissen über Redis, das hauptsächlich Probleme im Zusammenhang mit geordneten Mengen organisiert. In geordneten Mengen besteht jedes Element aus einem Mitglied und einer mit dem Mitglied verknüpften Punktzahl werden als 64-Bit-Gleitkommazahlen mit doppelter Genauigkeit gespeichert. Ich hoffe, es wird für alle hilfreich sein.
Empfohlenes Lernen: Redis-Video-Tutorial
geordneter Satz. Jedes Element besteht aus einem Mitglied und einer mit dem Mitglied verknüpften Punktzahl. Das Mitglied wird als Zeichenfolge gespeichert und die Punktzahl wird als 64-Bit-Gleitkommazahl mit doppelter Genauigkeit gespeichert. Mitglieder können nicht wiederholt werden und werden nach Punktzahl sortiert. Wenn sie dieselbe Punktzahl haben, werden sie in Wörterbuchreihenfolge sortiert.
Mitglieder hinzufügen oder aktualisieren
1. Befehl zadd Format: zadd-Taste [NX|XX] [GT|LT] [CH] [INCR] Mitglied bewerten [Mitglied bewerten …]
Gibt die Anzahl der neuen Mitglieder zurück, die erfolgreich hinzugefügt wurden, wenn die Ausführung erfolgreich ist Um die Mitgliedspunktzahl zu aktualisieren, wird 0 zurückgegeben. zadd key score member [score member ...]
zadd key score member [score member ...]
XX选项的作用是只更新不添加,执行后返回0。zadd key XX score member [score member ...]
NX选项的作用是只添加不更新,执行成功返回添加元素的个数。zadd key NX score member [score member ...]
CH选项的作用是返回被修改成员的数量而非添加成功的成员数量,被修改包括新添加。zadd key CH score member [score member ...]
移除指定成员
1.zrem命令 格式:zrem key member [member …]
返回被移除成员的数量,成员不存在于集合中时自动忽略。zrem key member [member ...]
2.zremrangebyrank命令 格式:zremrangebyrank key start stop
移除指定排名范围内的成员,返回被移除成员的数量,排名可使用正数排名或负数排名。zremrangebyrank key start stop
3.zremrangebyscore命令 格式:zremrangebyscore key min max
移除指定分值范围内的成员,返回被移除成员的数量。min或max前加“(”表示取开区间即不包含边界值。zremrangebyscore key min max
4.zremrangebylex命令 格式:zremrangebylex key min max
对于按照字典序排列的有序集合(即分值相同),移除指定字典序范围内的成员。返回被移除成员的数量,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。zremrangebylex key min max
Die Funktion der XX-Option besteht darin, nur zu aktualisieren, aber nicht hinzuzufügen, und nach der Ausführung 0 zurückzugeben. zadd key XX score member [score member ...]
zadd key NX-Score-Mitglied [Score-Mitglied ...]
🎜🎜 Die Funktion der CH-Option besteht darin, die Anzahl der geänderten Mitglieder und nicht die Anzahl der erfolgreich hinzugefügten Mitglieder zurückzugeben. Geänderte Mitglieder umfassen neu hinzugefügte Mitglieder. 🎜zadd key CH-Score-Mitglied [Score-Mitglied ...]
🎜🎜🎜🎜🎜Entferne das angegebene Mitglied🎜 1.zrem-Befehl Format: zrem-Schlüsselmitglied [Mitglied …]🎜 Gibt die Anzahl der entfernten Mitglieder zurück, das Mitglied existiert nicht im Satz automatisch ignoriert. 🎜zrem-Schlüsselmitglied [Mitglied ...]
🎜🎜 2. zremrangebyrank-Befehl Format: zremrangebyrank-Taste Start Stopp🎜 Entfernen Sie Mitglieder innerhalb des angegebenen Ranking-Bereichs und geben Sie die Anzahl der entfernten Mitglieder zurück. Das Ranking kann ein positives Ranking oder ein negatives Ranking verwenden. 🎜zremrangebyrank key start stop
🎜
Elemente auflisten
1. zpopmax-Befehl Format: zpopmax-Taste [Anzahl]
Wenn es mehrere Elemente mit den höchsten Werten gibt, wird das Mitglied mit der größten lexikografischen Reihenfolge angezeigt count ist nicht angegeben, der Standardwert ist 1. Nach Abschluss der Ausführung werden die Mitglieder und Bewertungen des gepoppten Elements zurückgegeben. zpopmax key [count]
zpopmax key [count]
2.zpopmin命令 格式:zpopmin key [count]
弹出分值最低的count个成员,分值最低有多个元素时弹出字典序最小的成员,若未指定count默认1个,执行完成后返回被弹出元素的成员和分值。zpopmin key [count]
3.bzpopmax命令 格式:bzpopmax key [key …] timeout
阻塞式的zpopmax命令,timeout为秒级精度。命令依次检查给定的有序集合,并从第一个非空集合弹出分值最大的元素,否则阻塞当前客户端直到有元素或超出超时时间返回nil。成功弹出元素时将返回一个列表,包含被弹出元素所在有序集合、成员以及分值。bzpopmax key [key ...] timeout
4.bzpopmin命令 格式:bzpopmin key [key …] timeout
阻塞式的zpopmin命令,timeout为秒级精度。命令依次检查给定的有序集合,并从第一个非空集合弹出分值最小元素,否则阻塞当前客户端直到有元素或超出超时时间返回nil。成功弹出元素时将返回一个列表,包含被弹出元素所在有序集合、成员以及分值。bzpopmin key [key ...] timeout
客户端2:
获取成员分值
1.zscore命令 格式:zscore key member
获取给定成员的分值,集合不存在或者成员不存在时返回nil。zscore key member
对成员分值做运算
1.zincrby命令 格式:zincrby key increment member
执行完后返回当前成员分值,increment为正时自增,否则为自减;若键不存在或成员不存在则执行创建操作。zincrby key increment member
获取成员数量
1.zcard命令 格式:zcard key
返回集合包含的成员数量,集合不存在时返回0。zcard key
2.zcount命令 格式:zcount key min max
获取指定分值范围内的成员数量,min或max前加“(”表示取开区间即不包含边界值,值+inf表示无穷大,-inf表示无穷小。zcount key min max
3.zlexcount命令 格式:zlexcount key min max
对于按照字典序排列的有序集合(即分值相同),获取指定字典序范围内的成员数量,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。zlexcount key min max
获取成员排名
1.zrank命令 格式:zrank key member
返回成员的升序排列排名,集合或成员不存在时返回nil。zrank key member
2.zrevrank命令 格式:zrevrank key member
返回成员的降序排列排名,集合或成员不存在时返回nil。zrevrank key member
Zeigt die Anzahl der Elemente mit der niedrigsten Punktzahl an. Wenn mehrere Elemente mit der niedrigsten Punktzahl vorhanden sind, wird das Mitglied mit der kleinsten lexikografischen Reihenfolge angezeigt. Wenn count ist nicht angegeben, der Standardwert ist 1. , gibt die Mitglieder und Bewertungen des gepoppten Elements nach der Ausführung zurück.
zpopmin key [count]
🎜 3.bzpopmax command Format: bzpopmax key [key…] timeout🎜 Blockieren des zpopmax-Befehls, Timeout ist Genauigkeit der zweiten Ebene. Der Befehl überprüft nacheinander die angegebene geordnete Menge und entfernt das Element mit der höchsten Punktzahl aus der ersten nicht leeren Menge. Andernfalls wird der aktuelle Client blockiert, bis ein Element vorhanden ist, oder nach Ablauf der Zeitüberschreitung wird Null zurückgegeben. Wenn ein Element erfolgreich entfernt wurde, wird eine Liste zurückgegeben, die den geordneten Satz, die Mitglieder und die Bewertungen des entfernten Elements enthält. 🎜bzpopmax key [key ...] timeout
🎜🎜 4.bzpopmin-Befehl Format: bzpopmin-Taste [Taste …] Timeout🎜 Blockieren des zpopmin-Befehls, Timeout ist Genauigkeit der zweiten Ebene. Der Befehl überprüft nacheinander die angegebene geordnete Menge und entfernt das Element mit der kleinsten Punktzahl aus der ersten nicht leeren Menge. Andernfalls wird der aktuelle Client blockiert, bis ein Element vorhanden ist, oder nach Ablauf des Timeout-Zeitraums wird Null zurückgegeben. Wenn ein Element erfolgreich entfernt wurde, wird eine Liste zurückgegeben, die den geordneten Satz, die Mitglieder und die Bewertungen des entfernten Elements enthält. 🎜bzpopmin key [key ...] timeout
🎜🎜 Kunde 2: 🎜🎜🎜🎜🎜 Operationen an Mitgliedsbewertungen ausführen🎜 1. Zincrby-Befehl Format: Zincrby-Tasteninkrement Mitglied🎜 Nach der Ausführung wird die aktuelle Mitgliedsbewertung zurückgegeben. Wenn das Inkrement positiv ist, erhöht es sich automatisch, andernfalls verringert es sich automatisch ; wenn der Schlüssel nicht vorhanden ist, führen Sie den Erstellungsvorgang aus, wenn das Mitglied vorhanden ist oder nicht. 🎜zincrby key increment member
🎜🎜🎜🎜🎜Anzahl der Mitglieder abrufen🎜 1. zcard-Befehl Format: zcard-Schlüssel🎜 Gibt die Anzahl der in der Sammlung enthaltenen Mitglieder zurück und gibt 0 zurück, wenn die Sammlung nicht existiert. 🎜zcard key
🎜🎜 2.zcount-Befehl Format: zcount-Schlüssel min max🎜 Ermitteln Sie die Anzahl der Mitglieder innerhalb des angegebenen Bewertungsbereichs. Fügen Sie „(“ vor min oder max hinzu, um ein offenes Intervall anzugeben, das keine Grenzwerte enthält. Der Wert +inf gibt an Unendlich, - inf bedeutet unendlich klein " alt= "Bildbeschreibung hier einfügen"/>🎜 3. zlexcount-Befehl Format: zlexcount-Taste min max🎜 Für eine geordnete Menge, die in lexikografischer Reihenfolge angeordnet ist (d. h. mit derselben Punktzahl), erhalten Sie die Anzahl der Mitglieder in der angegebenen lexikografischen Reihenfolge Bereich, Min., Max. Zu den möglichen Werten gehören: Der Wert mit „[“ bedeutet, dass er lexikografische Grenzen enthält, der Wert mit „(“ bedeutet, dass er keine lexikografischen Grenzen enthält, „+“ bedeutet unendlich , und „-“ bedeutet unendlich klein. png" alt="Bildbeschreibung hier einfügen "/>🎜🎜🎜🎜Mitgliederrangfolge abrufen🎜 1. zrank-Befehl Format: zrank-Schlüsselmitglied🎜 Gibt die aufsteigende Rangfolge der Mitglieder zurück, oder Null, wenn der Satz oder das Mitglied nicht existiert. 🎜zrank key member🎜🎜 2.zrevrank-Befehl Format: zrevrank-Schlüsselmitglied🎜 Gibt die absteigende Rangfolge des Mitglieds zurück, gibt Null zurück, wenn die Sammlung oder das Mitglied nicht existiert 🎜zrevrank-Schlüsselmitglied
🎜🎜🎜.Mitglieder abrufen
1. zrange-Befehl Format: zrange-Taste min max [BYSCORE|BYLEX] [REV] [LIMIT offset count] [WITHSCORES]
Mitglieder innerhalb des angegebenen Indexbereichs abrufen, in aufsteigender Reihenfolge nach Punktzahl sortiert. Die Option WITHSCORES kann die Punktzahl zurückgeben, nachdem der Befehl ausgeführt wurde. Die ungeraden Ziffern in der zurückgegebenen Liste sind Mitglieder und die geraden Ziffern sind die entsprechenden Punktzahlen. Gibt leer zurück, wenn die Sammlung nicht existiert. zrange key min max [WITHSCORES]
zrange key min max [WITHSCORES]
2.zrevrange命令 格式:zrevrange key start stop [WITHSCORES]
获取指定索引范围内的成员,按分值大小降序排列。WITHSCORES选项可在命令执行后返回分值,返回列表奇数位为成员,偶数位为对应分值。集合不存在时返回empty。zrevrange key start stop [WITHSCORES]
3.zrangebyscore命令 格式:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
获取指定分值范围内的成员,按分值大小升序排列。WITHSCORES选项可在命令执行后返回分值,返回列表奇数位为成员,偶数位为对应分值。集合不存在时返回empty。zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
[LIMIT offset count]选项的作用是限制返回的成员数量,offset指定需要跳过的成员数量,count执行最多返回成员的数量,count为负时取绝对值。
min或max前加“(”表示取开区间即不包含边界值,值+inf表示无穷大,-inf表示无穷小。
4.zrevrangebyscore命令 格式:zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
获取指定分值范围内的成员,按分值大小降序排列,注意max min顺序。zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
5.zrangebylex命令 格式:zrangebylex key min max [LIMIT offset count]
当成员分值相同时,获取指定字典序范围内成员,按字典序升序排列,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。zrangebylex key min max [LIMIT offset count]
6.zrevrangebylex命令 格式:zrevrangebylex key max min [LIMIT offset count]
当成员分值相同时,获取指定字典序范围内成员,按字典序降序排列,max、min的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。zrevrangebylex key max min [LIMIT offset count]
🎜 Mit der Option [LIMIT offset count] wird die Anzahl der zurückgegebenen Mitglieder begrenzt. Offset gibt die Anzahl der zu überspringenden Mitglieder an. Count führt die maximale Anzahl zurückgegebener Mitglieder aus. Bei count ist negativ. Nehmen Sie den absoluten Wert. 🎜🎜 Fügen Sie „ vor min oder max ( " bedeutet, ein offenes Intervall zu nehmen, das keine Grenzwerte enthält. Der Wert +inf bedeutet unendlich, -inf bedeutet unendlich klein. 🎜🎜 4.zrevrangebyscore-Befehl Format: zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]🎜 Mitglieder innerhalb des angegebenen Bewertungsbereichs in absteigender Reihenfolge nach Bewertung abrufen Größe anordnen, auf maximale Mindestbestellmenge achten 🎜zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
🎜🎜 5.zrangebylex-Befehl Format: zrangebylex key min max [LIMIT offset count]🎜Wenn die Mitgliederbewertungen gleich sind strong> , rufen Sie die Mitglieder innerhalb des angegebenen lexikografischen Bereichs ab, sortieren Sie sie in aufsteigender lexikografischer Reihenfolge. Zu den verfügbaren Werten für min und max gehören: Werte mit „[“ geben an, dass sie lexikografische Grenzen enthalten, und „(“ gibt an, dass sie keine lexikografische Grenze enthalten, „+“ bedeutet unendlich, „-“ bedeutet unendlich klein. 🎜zrangebylex key min max [LIMIT offset count]
🎜🎜 6.zrevrangebylex Befehl Format: zrevrangebylex Schlüssel max. min [LIMIT Offset Count] 🎜Wenn die Mitgliederbewertung gleich ist, rufen Sie die Mitglieder im angegebenen lexikografischen Bereich ab und sortieren Sie sie in absteigender lexikografischer Reihenfolge. Zu den möglichen Werten von max und min gehören: Werte mit „[“ geben an, dass sie lexikografische Grenzen enthalten, und Werte mit „(“ bedeuten, dass sie keine lexikografischen Grenzen enthalten, „+“ bedeutet Unendlich und „-“ bedeutet Infinitesimal. 🎜zrevrangebylex key max min [LIMIT offset count]
🎜
Set-Operation
1. Union
1)zunionstore-Befehl Format: zunionstore-Ziel Numkeys-Taste [Taste …] [GEWICHTE Gewicht] [AGGREGATE SUM|MIN|MAX]
Numkeys ist die Anzahl der Sätze, die an der Operation teilnehmen, und wird wird zurückgegeben, wenn es nicht dem Fehler entspricht, und gibt die Anzahl der Mitglieder der neuen Sammlung nach der Ausführung zurück. Das Vereinigungsergebnis ist ein Mitgliedssatz. Wenn in den an der Operation beteiligten Sätzen dieselben Mitglieder vorhanden sind, ist der Standardmitgliedswert des neuen Satzes die Summe der Bewertungen der ursprünglichen Satzmitglieder. zunionstore Ziel-Numkeys-Taste [Taste ...]
zunionstore destination numkeys key [key ...]
AGGREGATE选项作用是指定使用的聚合函数,不指定时默认SUM。SUM指分值相加,MIN指取最小分值,MAX指取最大分值。zunionstore destination numkeys key [key ...] [AGGREGATE SUM|MIN|MAX]
WEIGHTS 选项作用是执行聚合前为每个集合分别设置一个权重,权重分别与集合中成员分值相乘得到新分值,然后执行聚合计算。
2)zunion命令 格式:zunion numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
执行完成后返回新集合成员。zunion numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
2.交集
1)zinterstore命令 格式:zinterstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
执行完后返回新集合的成员数量。zinterstore destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
2)zinter命令 格式:zinter numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
执行完后返回新集合成员。zinter numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
Die Option AGGREGATE wird verwendet, um die zu verwendende Aggregatfunktion anzugeben. Wenn nicht angegeben, wird standardmäßig SUM verwendet. SUM bezieht sich auf die Addition der Punkte, MIN bezieht sich auf die Erzielung der Mindestpunktzahl und MAX bezieht sich auf die Erzielung der Höchstpunktzahl. zunionstore Ziel-Numkeys-Taste [Taste ...] [AGGREGATE SUM|MIN|MAX]
Mit der Option WEIGHTS wird vor der Aggregation eine Gewichtung für jede Sammlung festgelegt. Die Gewichtung wird mit der Mitgliedspunktzahl in der Sammlung multipliziert, um eine neue Punktzahl zu erhalten . und führen Sie dann Aggregationsberechnungen durch.
zunion numkeys key [key ...] [WEIGHTS Weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
2. Schnittpunkt
1) Zinterstore-Befehl Format: Zinterstore Destination numkeys key [key … ] [WEIGHTS Gewicht] [AGGREGATE SUM|MIN|MAX]
Zinterstore-Ziel-Numkeys-Taste [Taste ...] [WEIGHTS-Gewicht] [AGGREGATE SUM|MIN|MAX]
Gibt das neue Sammlungsmitglied nach der Ausführung zurück. zinter numkeys key [key ...] [WEIGHTS Weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
Das obige ist der detaillierte Inhalt vonDie von Redis geordnete Sammlung verwendet die Wissenspunktinduktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!