Maison >base de données >Redis >Où Redis peut-il être utilisé ? 16 scénarios d'utilisation courants partagés

Où Redis peut-il être utilisé ? 16 scénarios d'utilisation courants partagés

青灯夜游
青灯夜游avant
2021-09-18 20:01:303419parcourir

Où Redis peut-il être appliqué ? Cet article partagera avec vous 16 scénarios d'utilisation courants de Redis en une seule fois. J'espère qu'il sera utile à tout le monde !

Où Redis peut-il être utilisé ? 16 scénarios d'utilisation courants partagés

【Recommandation associée : Tutoriel vidéo Redis

1. Cache

Type de chaîne

Par exemple : cache de données chaudes (telles que des rapports, des tricheries de célébrités), un cache d'objets, un cache de page complète, qui peut améliorer les données d'accès aux données chaudes.

Où Redis peut-il être utilisé ? 16 scénarios dutilisation courants partagés

2. Partage de données distribuées

Type de chaîne, car Redis est un service indépendant distribué qui peut être partagé entre plusieurs applications

Par exemple : Session distribuée

<dependency> 
 <groupId>org.springframework.session</groupId> 
 <artifactId>spring-session-data-redis</artifactId> 
</dependency>

3 Verrouillage distribué

La méthode setnx de type chaîne peut. ne sera ajouté avec succès que s'il n'existe pas. Il renvoie true

public static boolean getLock(String key) {
    Long flag = jedis.setnx(key, "1");
    if (flag == 1) {
        jedis.expire(key, 10);
    }
    return flag == 1;
}

public static void releaseLock(String key) {
    jedis.del(key);
}

4 Global ID

int type, incrby, en utilisant atomicity

incrby userid 1000

Dans le scénario de sous-bibliothèque et de sous-table, obtenez un. section à la fois

5. Counter

type int, méthode incr

Par exemple : le nombre de lectures d'articles, le nombre de likes Weibo, autorisez un certain délai, écrivez d'abord sur Redis puis synchronisez régulièrement avec la base de données

6. Limite actuelle

int Type, méthode incr

utilise l'adresse IP du visiteur et d'autres informations comme clé Chaque visite augmente le nombre si le nombre dépasse le nombre, false est renvoyé

7 Bit statistiques

String. tapez bitcount (introduction de la structure de données bitmap dans la version 1.6.6)

Les caractères sont stockés dans un binaire de 8 bits

set k1 a
setbit k1 6 1
setbit k1 7 0
get k1 
/* 6 7 代表的a的二进制位的修改
a 对应的ASCII码是97,转换为二进制数据是01100001
b 对应的ASCII码是98,转换为二进制数据是01100010

因为bit非常节省空间(1 MB=8388608 bit),可以用来做大数据量的统计。
*/

Par exemple : statistiques d'utilisateur en ligne, statistiques d'utilisateur conservées

setbit onlineusers 01 
setbit onlineusers 11 
setbit onlineusers 20

Prend en charge les opérations ET au niveau du bit, OU au niveau du bit, etc.

BITOPANDdestkeykey[key...] ,对一个或多个 key 求逻辑并,并将结果保存到 destkey 。       
BITOPORdestkeykey[key...] ,对一个或多个 key 求逻辑或,并将结果保存到 destkey 。 
BITOPXORdestkeykey[key...] ,对一个或多个 key 求逻辑异或,并将结果保存到 destkey 。 
BITOPNOTdestkeykey ,对给定 key 求逻辑非,并将结果保存到 destkey 。

Calculez les utilisateurs qui sont en ligne pendant 7 jours

BITOP "AND" "7_days_both_online_users" "day_1_online_users" "day_2_online_users" ...  "day_7_online_users"

8. Panier

Chaîne ou hachage. Tous les hachages pouvant être effectués avec String peuvent être effectués

Où Redis peut-il être utilisé ? 16 scénarios dutilisation courants partagés

  • clé : champ d'identification de l'utilisateur : valeur de l'identifiant du produit : quantité du produit.
  • +1:hincr. -1:hdécr. Supprimer : hdel. Tout sélectionner : hgetall. Nombre d'articles : hlen.

9. Chronologie des messages utilisateur timeline

list, une liste doublement chaînée, peut être utilisée directement comme chronologie. Ordre d'insertion

10. File d'attente des messages

La liste fournit deux opérations pop bloquantes : blpop/brpop, le délai d'attente peut être défini

  • blpop : le délai d'attente de la touche blpop 1 supprime et récupère le premier élément de la liste, si la liste ne bloque aucun élément. la liste jusqu'à ce que le délai d'attente soit écoulé ou qu'un élément poppable soit trouvé.
  • brpop : brpop key1 timeout supprime et récupère le dernier élément de la liste. Si la liste ne contient aucun élément, elle la bloquera jusqu'à ce que le délai d'attente expire ou qu'un élément popable soit trouvé.

L'opération ci-dessus. En fait, il s'agit de la file d'attente de blocage de Java. Plus vous apprenez de choses. Plus le coût d'apprentissage est faible

  • File d'attente : premier entré, premier divisé : rpush blpop, tête gauche et queue droite, la droite entre dans la file d'attente, la gauche sort de la file d'attente
  • Pile : premier entré, dernier sorti : rpush brpop

11, tirage au sort

est livré avec une valeur aléatoire Get

spop myset

12, aimez, connectez-vous, enregistrez-vous

Où Redis peut-il être utilisé ? 16 scénarios dutilisation courants partagés

Si l'identifiant Weibo ci-dessus est t1001, l'identifiant utilisateur est u3001

Utilisez comme :t1001 pour maintenir tous les utilisateurs qui aiment ce Weibo sur t1001

  • J'ai aimé ce Weibo : sadd comme :t1001 u3001
  • Contrairement à : srem comme :t1001 u3001
  • J'aime : sismember comme :t1001 u3001
  • Tous les utilisateurs qui ont aimé : smembers comme :t100 1
  • J'aime : cicatrice comme :t1001

N'est-ce pas beaucoup plus simple que la base de données ?

13. Balises de produit

Où Redis peut-il être utilisé ? 16 scénarios dutilisation courants partagés

L'ancienne règle est d'utiliser tags:i5001 pour conserver toutes les balises du produit.

  • ajouter des balises:i5001 L'image est claire et délicate
  • ajouter des balises:i5001 Couleurs réelles et affichage clair
  • ajouter des balises:i5001 Le processus est superbe

Sélection de produits

// 获取差集
sdiff set1 set2
// 获取交集(intersection )
sinter set1 set2
// 获取并集
sunion set1 set2

Où Redis peut-il être utilisé ? 16 scénarios dutilisation courants partagés

Supposons: iPhone11. est sur le marché

sadd brand:apple iPhone11

sadd brand:ios iPhone11

sad screensize:6.0-6.24 iPhone11

sad screentype:lcd iPhone 11

Les produits sélectionnés pour le concours proviennent d'Apple et d'iOS, avec des écrans entre 6.0 et 6.24. Le matériau de l'écran est un écran LCD

sinter brand:apple brand:ios screensize:6.0-6.24 screentype:lcd

15. Attention aux utilisateurs, modèles recommandés

suivez les fans Fans

. Suivez-vous les uns les autres :

  • sadd 1 :follow 2
  • sadd 2:fans 1
  • sadd 1:fans 2
  • sadd 2:follow 1

Les personnes que je suis le suivent également (prendre l'intersection) :

  • sinter 1 : suivez 2 : fans

Personnes que vous connaissez peut-être :

  • 用户1可能认识的人(差集):sdiff 2:follow 1:follow
  • 用户2可能认识的人:sdiff 1:follow 2:follow

16、排行榜

id 为6001 的新闻点击数加1:

zincrby hotNews:20190926 1 n6001

获取今天点击最多的15条:

zrevrange hotNews:20190926 0 15 withscores

Où Redis peut-il être utilisé ? 16 scénarios dutilisation courants partagés

Redis 用的好,加薪少不了

原文地址:https://juejin.cn/post/6994229128534687781

作者:码猿技术专栏

更多编程相关知识,请访问:编程视频!!

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer