当前位置:网站首页>Redis data type Daily use Scenarios

Redis data type Daily use Scenarios

2022-06-11 12:24:00 Appelez - moi beau garçon.

Un.、 String

1. Cache

	 Simplekey-valueStockage

2. Serrure distribuée

		setnx key value,QuandkeyLorsqu'il n'existe pas,Oui.key La valeur de value ,Retour1;
		Si donné key Existe déjà,EtsetnxPas d'action,Retour0.
		QuandsetnxRetour1Heure,Indique l'acquisition de la serrure,Après l'opérationdel key,Indique la serrure de libération;Si  setnxRetour0Indique que l'acquisition de la serrure a échoué,C'est comme ça que ça se passe

3. Compteur

	  RedisIl y a une commande liée à la chaîne dansincr key,incrLes commandes seront key La valeur numérique stockée dans augmente d'un,Les résultats retournés sont divisés en trois situations::
  • La valeur n'est pas un entier,Erreur retournée
  • La valeur est un entier,Renvoie le résultat depuis l'augmentation
  • keyN'existe pas, key La valeur de sera initialisée à 0 ,Retour1

Comme la quantité de lecture d'un article,La quantité de lecture de la vidéo, etc., sera utiliséeredisComptez.,Chaque fois qu'il joue,La quantité de lecture correspondante sera augmentée de1,Ces données sont stockées de façon asynchrone dans la base de données à des fins de persistance..

set key 0 
 
incr key // incr readcount::{Postsid} Chaque lecture
 
get key // get readcount::{Postsid} Obtenir la quantité de lecture 

4. IPRestrictions

Pour des raisons de sécurité,Oui.IPLimiter,Limiter la même choseIP Le nombre de visites ne peut excéder NUne fois

2.、 List

Redis À l'intérieur. List C'est une liste de liens, Parce que la liste elle - même insère et supprime des blocs de comparaison , Mais les requêtes sont moins efficaces , Il est donc souvent utilisé comme file d'attente asynchrone .Redis À l'intérieur. List  Le design est vraiment génial ,Quand la quantité de données est petite, La structure des données est une liste de liens compressés , Et quand il y a beaucoup de données, c'est une liste de liens rapides .
Le type de liste est utilisé pour stocker plusieurs chaînes ordonnées,Une liste peut être stockée jusqu'à2^32-1Éléments,Les éléments peuvent être insérés et éjectés aux deux extrémités de la Liste.

1.File d'attente des messages

Utilisation de files d'attente asynchrones dans les affaires rpush/lpush File d'attente des opérations,Utiliser lpop Et rpop Hors de la file d'attente,La structure spécifique est indiquée dans la figure ci - dessous.:
Insérer la description de l'image ici
Redis Bien que la mise en file d'attente des messages soit prise en charge ,Mais pas de soutienack.Alors...redis La mise en file d'attente des messages ne garantit pas la fiabilité des messages , À moins que vous ne mettiez en place vous - même un mécanisme de confirmation des messages , Mais c'est très gênant , Donc si c'est un message important ou si c'est recommandé d'utiliser une file d'attente de messages dédiée .

2.Liste des articles

Parce que les éléments de la liste ne sont pas seulement ordonnés,Il prend également en charge l'obtention d'éléments par plage d'index.Donc nous pouvons utiliser les commandeslrange key 0 9Page pour la liste des articles

Trois、 Hash

Redis Le hachage permet à l'utilisateur de stocker plusieurs paires de valeurs clés en une seule Redis Dans la clé de , Le hachage est idéal pour stocker des données connexes ensemble .SimilairemapUne structure, Données à structurer ,Comme un objet(Si cet objet n'est pas imbriqué avec d'autres objets) Cache vers redisMoyenne, Chaque fois que vous lisez et écrivez la mémoire ,Pour pouvoir fonctionnerhashUn champ dans.

1.HashCode interne

 Il existe deux types d'encodages internes de type hachage 
  • zipList(Liste compressée):Lorsque le nombre d'éléments de type hachage est inférieur àhash-max-ziplist-entriesConfiguration(Par défaut512- Oui.)Toutes les valeurs sont inférieures àhash-max-ziplist-valueConfiguration(Par défaut64Octets)À utiliser.ziplistStockage continu de plusieurs éléments avec une structure plus compacte,Donc plus quehashtablePlus d'économies de mémoire.
  • hashtable(Table de hachage):QuandziplistSi les exigences ne sont pas respectées,Sera utiliséhashtable.

2.Utiliser le scénario

Parce quehash Le type stocke plusieurs paires de valeurs clés , Par exemple, la base de données a une structure de table utilisateur

IDNAMEage
1Beau gosse.28
hset user:1 name Beau gosse. age 28

L'utilisation d'un Hash Store est plus facile et intuitive que les chaînes

Quatre、 set

setLe type de collection peut également enregistrer plusieurs éléments de chaîne,Contrairement à la liste,Les éléments dupliqués ne sont pas autorisés dans la collection et les éléments de la collection sont hors ordre.Une collection peut stocker jusqu'à2^32-1Éléments.

Ensemble désordonné,Dégraissage automatique,Mettre les données dansset On peut aller au milieu et ,Peut être basé surJVMDeHashSetPoids mort, Si le système est déployé sur plusieurs machines ,Ça marche.redisEffectuer un dégraissage global.Peut être basé sursetIntersection,Union,Fonctionnement de l'ensemble de différences.Ru - ji.2 Une liste personnelle de fans pour faire une intersection , Pour voir qui sont leurs amis communs .

1. Fonction de tirage au sort

La collection a deux commandes pour prendre en charge les nombres aléatoires,Respectivement.:
  • Acquisition aléatoirecountÉléments,Le nombre d'éléments de la collection est constant
srandmember key [count]
  • éjecter au hasardcountÉléments, Élément éjecté de la collection ,Changement du nombre d'éléments de la collection
spop key [count]

L'utilisateur clique sur le bouton de tirage au sort,Tirage au sort des paramètres,Placer le numéro d'utilisateur dans la collection,Et le tirage au sort,Tirez le premier prix séparément、Deuxième prix,Utilisé si l'utilisateur qui a gagné le premier prix ne peut pas paramétrer le deuxième prixspop,Utiliser au contrairesrandmember.

Cinq、 Zset(sorted set )

zset- Oui.Redis La structure de données la plus caractéristique de (Liste des sauts),D'abord, il asetCaractéristiques non reproductibles,Sur cette base,Je peux encorevalue Assigner un poids de tri score, Ce qu'on appelle l'ordre, c'est l'ordre basé sur ce score .Triéset, On peut le refaire ou le trier ,Donne un score quand tu l'écriras, Trier automatiquement par score , Les scores peuvent être triés sur mesure .

Redis Rassemblement ordonnézsetEt collectionssetC'est pareilStringCollection d'éléments de type,Et les membres en double ne sont pas autorisés.La différence est zset Chaque élément de est associé à une fraction(Les scores peuvent être répétés),redis Trier les membres d'une collection de petits à grands par fractions.RedisDezsetIl est né pour faire des classements.,La liste,Tableau général,Hot List.

1、zsetCode interne

Il existe deux types de codage interne pour les types d'ensembles ordonnés:

ziplist(Liste compressée):Lorsque le nombre d'éléments d'une collection ordonnée est inférieur àlist-max-ziplist-entriesConfiguration(Par défaut128- Oui.)Toutes les valeurs sont inférieures àlist-max-ziplist-valueConfiguration(Par défaut64Octets)À utiliser.ziplistStockage continu de plusieurs éléments avec une structure plus compacte,Plus d'économies de mémoire.

skiplist(Table de saut):Quand on n'est pas satisfaitziplistÀ la demande de,Sera utiliséskiplist.

2、Les classements

L'utilisateur a publiénArticle (s),D'autres apprécient l'article après l'avoir vu,UtiliserscorePour noter les points positifs,Les collections ordonnées seront basées surscoreClassement.Le processus est le suivant

L'utilisateur publie un articlea,Le nombre initial de points positifs est0,C'est - à - dire:scorePour0

zadd user:article 0 a

Quelqu'un a donné l'articlea- Oui.,Incrémental1

zincrby user:article 1 a

Les trois premiers articles

zrevrangebyscore user:article 0 2

Les trois derniers articles de la recherche sont

zrangebyscore user:article 0 2

Six、Bitmap

Sept、HyperLogLog(Base)

Huit、Geospatial (Index géospatial)

Neuf、Streams

原网站

版权声明
本文为[Appelez - moi beau garçon.]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/162/202206111211099726.html