Ensemble trié Redis
1. Ajoutez des éléments (multiples) et des scores d'éléments à l'ensemble
ZADD key score1 member1 [ score2 member2]
1. ZADD testkey 1 redis
2. ZADD testkey 2 mysql 3 java
Deuxièmement, parcourez la collection
ZRANGE key 0 -1 WITHSCORES
ZRANGE testkey 0 -1 WITHSCORES
Trois, obtenez le nombre de membres dans un ensemble ordonné
zcard key
zcard testkey
1
Quatre. Ajouter et soustraire des éléments de l'ensemble. La
commande Redis Zincrby ajoute un incrément incrémentiel aux scores des membres spécifiés dans l'ensemble ordonné.
-
Vous pouvez passer un incrément de valeur négative pour soustraire la valeur correspondante du score , par exemple
ZINCRBY key -5 member
,
soustraire 5 de la valeur de score du membre. -
Lorsque la clé n'existe pas ou que le score n'est pas membre de la clé, le membre d'incrémentation de clé ZINCRBY est
équivalentZADD key increment member
. -
Lorsque la clé n'est pas un type d'ensemble ordonné, une erreur est renvoyée.
-
La valeur fractionnaire peut être une valeur entière ou un nombre à virgule flottante double précision.
ZADD myzset 1 "one"
ZADD myzset 2 "two"
ZINCRBY myzset 2 "one"
ZRANGE myzset 0 -1 WITHSCORES
On constate que l'on devient 35.
Renvoie l'index du membre spécifié dans l'ensemble ordonné
ZRANK key member
Les membres de l'ensemble ordonné sont disposés dans l'ordre des points croissants (de petit à grand).
C'est-à-dire que plus la valeur est élevée, plus l'index renvoyé est grand
red:0> ZADD testkey 1 redis
"1"
red:0>ZADD testkey 2 mysql 3 java
"2"
red:0>ZADD testkey 2 mongo 3 tomcat
"2"
red:0>ZADD testkey 2 mongoDB 4 app
Sixièmement, selon l'indice de tri croissant et décroissant
Croissant:
red:0> ZRANGE testkey 0 -1 WITHSCORES
// Décrémenter
red:0>ZREVRANGE testkey 0 -1 WITHSCORES
ZREVRANGEBYSCORE key + inf -inf # Trier tous les membres dans l'ordre inverse
red:0>ZREVRANGEBYSCORE testkey +inf -inf
ZREVRANGEBYSCORE testkey 2 1
# Triez les membres avec des valeurs comprises entre 1 et 2 dans l'ordre inverse.
Sept, renvoie le score d'une clé de l'ensemble
ZSCORE key member
Après avoir lu le SET trié ci-dessus, essayons d'implémenter la fonction similaire
7.1 Implémentation du nombre de likes par un seul utilisateur
Chaque fois qu'un utilisateur l'aime, enregistrez son identifiant
ZINCRBY wenZhangID 1 userID
Ne pas aimer
ZINCRBY wenZhangID -1 userID
Bien sûr, il y a une logique ici, un utilisateur ne peut qu'aimer et annuler.
Si vous voulez compter combien de fois l'article d'un utilisateur a été aimé, vous pouvez directement prendre le nombre de membres qu'il contient.
zcard wenZhangID
7.2 La conception et la mise en œuvre du classement des likes
consiste en fait à créer un nouvel ensemble A, qui stocke l'ID utilisateur et le nombre de likes.
Chaque fois que le nombre de likes d' un seul utilisateur change, le nombre de likes personnels dans A est mis à jour de manière synchrone
et le top est calculé en temps réel. C'est tout, par exemple top100
ZREVRANGE key 0 99 WITHSCORES