Utilisez Redis Sorted Set pour implémenter la fonction de classement

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é.

  1. 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.

  2. 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
    équivalent ZADD key increment member.

  3. Lorsque la clé n'est pas un type d'ensemble ordonné, une erreur est renvoyée.

  4. 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.
Insérez la description de l'image ici
Renvoie l'index du membre spécifié dans l'ensemble ordonné

ZRANK key  member

Insérez la description de l'image ici
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    

Insérez la description de l'image ici
// Décrémenter

red:0>ZREVRANGE  testkey 0 -1 WITHSCORES    

Insérez la description de l'image ici
ZREVRANGEBYSCORE key + inf -inf # Trier tous les membres dans l'ordre inverse

red:0>ZREVRANGEBYSCORE testkey +inf -inf

Insérez la description de l'image ici
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
Insérez la description de l'image ici

 ZSCORE key member

Insérez la description de l'image ici
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   

Je suppose que tu aimes

Origine blog.csdn.net/qq_26249609/article/details/103566848
conseillé
Classement