编程知识 cdmana.com

Redis expiration Key Removal Policy and cache Elimination Policy

RedisComme cache,CorrespondantkeyLes valeurs peuvent être définiesexpireDate d'expiration,Correspondant à,Il existe également trois stratégies d'élimination des clés périmées.

Un.、Politique de suppression des clés expirées

1、Suppression programmée
Sens:Dans la configurationkeyEn même temps que,Pour ça.keyCréer un minuteur,Laissez le minuteurkeyLa date d'expiration dekeySupprimer;
Avantages: Assurez - vous que la mémoire est libérée dès que possible
Inconvénients:En cas d'expirationkeyBeaucoup.,SupprimerkeyÇa prendra beaucoup.CPUTemps,InCPUQuand le temps presse,CPUJe ne peux pas passer tout mon temps à faire des choses importantes,Il faut encore du temps pour les enleverkeyLa création d'un minuteur prend du temps,Si vous définissez un délai d'expiration pour chaquekeyCréer un minuteur(Il y aura beaucoup de minuteurs),Impact important sur le rendement,Donc, en gros, moins utilisé.

2、Retrait inerte
Sens:keyNe pas supprimer après expiration,Chaque fois que vous obtenez de la base de donnéeskeyVérifiez s'il est périmé,En cas d'expiration,Supprimer,Retournull.
Avantages: L'opération de suppression ne se produit que lorsque la base de données est retiréekeyÇa arrive.,Et ne supprime que le courantkey,Alors, ouiCPUL'occupation du temps est relativement faible,Et à ce stade, la suppression a atteint un point où elle est nécessaire(Si elle n'a pas encore été supprimée,Et nous obtiendrons ce qui a expirékeyC'est);
Inconvénients: Si beaucoupkeyAprès avoir dépassé le délai,Pendant longtemps,,N'ont jamais été acquis,Donc une fuite de mémoire peut se produire(Les ordures inutiles prennent beaucoup de mémoire);

3、Supprimer périodiquement
Sens: Supprimer à intervalles réguliers (Inredis.confConfiguration du profilhz,1s Fréquence de rafraîchissement )ExpirationkeyFonctionnement;
Avantages:
(1)En limitant la durée et la fréquence des suppressions,Pour réduire les paires d'opérations de suppressionCPUOccupation du temps–Traitement"Suppression programmée"Les inconvénients de;
(2)Supprimer périodiquement les expirationskey–Traitement"Retrait inerte"Les inconvénients de;
Inconvénients:
(1)Convivialité de la mémoire,Non."Suppression programmée";
(2)InCPUAspects liés au temps,Non."Retrait inerte";
Les difficultés: Définir raisonnablement la durée d'exécution de l'opération de suppression ( Combien de temps dure chaque suppression ) Et la fréquence d'exécution ( Combien de fois supprimer )( Ça dépend du fonctionnement du serveur )

2.、Stratégie d'élimination du cache

Correspondant à, Peut - être parce que notre politique de suppression des clés expirées n'est pas correctement définie ( Si l'effacement inerte a beaucoup key Pas acquis depuis longtemps , Ou il y a beaucoup de clés qui n'ont pas expiré , Peut nous mener à redis Un débordement de mémoire s'est produit ,Alors, à ce moment - là,, Si on doit aller plus loin redisDonnées stockées dans, Il devrait y avoir une stratégie d'élimination du cache correspondante , Supprimer certaines clés .

1、Algorithme d'élimination:
(1)LRUAlgorithmes

LRU(Least recently used,Utilisation minimale récente)L'algorithme élimine les données en fonction de l'historique d'accès aux données,Son idée centrale est“Si les données ont été consultées récemment,Alors les chances d'être visité à l'avenir sont plus élevées”.
Idées de base:

  • Insérer de nouvelles données dans l'en - tête de la liste ;
  • Chaque fois que le cache frappe(C'est - à - dire que les données mises en cache sont accessibles), Déplacer les données dans l'en - tête de la liste ;
  • Quand la liste est pleine , Jeter les données à la fin de la liste .

Sauvegardé dans la configuration du serveur lru Compteur server.lrulock,C'est programmé(redis Programme de chronométrage serverCorn())Mise à jour,server.lrulock La valeur de est basée sur server.unixtime Calculé pour trier,Sélectionnez ensuite les données les plus récentes et les plus anciennes à supprimer.En plus,De struct redisObject On peut trouver,Chaque redis Les objets sont configurés en conséquence lru.Chaque accès aux données,La correspondance sera mise à jourredisObject.lru.

(2)TTL(time to live)
Redis Tableau dans la structure de données de l'ensemble de données où la valeur de la clé est sauvegardée par rapport au temps d'expiration ,C'est - à - dire: redisDb.expires.Avec LRU Le mécanisme d'élimination des données est similaire ,TTL Le mécanisme d'élimination des données sélectionne d'abord au hasard plusieurs paires de clés dans le tableau des temps d'expiration , Enlevez - les ttl La plus grande paire de touches est éliminée .Encore une fois,TTL La politique d'obsolescence n'est pas la paire de clés qui expire le plus rapidement dans le tableau pour tous les temps d'expiration , Et juste quelques paires de clés choisies au hasard .

(3)Algorithme stochastique
Obtenir les paires de valeurs clés à supprimer dans un scénario d'élimination aléatoire , Recherche aléatoire hash Le seau hash Emplacement spécifié dictEntryC'est tout..

2、Supprimer la plage: Pour touskey Valeur ou avec un délai d'expiration défini keyValeur

3、 Six stratégies d'élimination du cache
(1)noeviction: Ne pas supprimer la politique , Lorsque la limite de mémoire maximale est atteinte , Si plus de mémoire est nécessaire, Renvoie directement le message d'erreur. La plupart des commandes d'écriture prennent plus de mémoire ( Il y a très peu d'exceptions , Par exemple: DEL ).
(2)allkeys-lru: Tous leskeyGénéralités; Supprimer de préférence l'utilisation minimale la plus récente(less recently used ,LRU) De key.
(3)volatile-lru: Limité aux paramètres expire Partie de; Supprimer de préférence l'utilisation minimale la plus récente(less recently used ,LRU) De key.
(4)allkeys-random: Tous leskeyGénéralités; Supprimer une partie au hasard key.
(5)volatile-random: Limité aux paramètres expire Partie de; Supprimer une partie au hasard key.
(6)volatile-ttl: Limité aux paramètres expire Partie de; Supprimer d'abord le temps restant(time to live,TTL) Courtkey.

版权声明
本文为[Princesse sinB]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/10/20211014005848608Y.html

Scroll to Top