Le produit de stockage hybride Redis est un produit de stockage hybride développé indépendamment par Alibaba Cloud qui est entièrement compatible avec le protocole et les fonctionnalités Redis.
En stockant une partie des données froides sur le disque, cela réduit considérablement les coûts d'utilisation et dépasse la limite de mémoire sur le volume de données d'une instance unique Redis tout en garantissant que la plupart des performances d'accès ne diminuent pas.
Parmi elles, l'identification et l'échange de données chaudes et froides sont des facteurs clés dans la performance des produits de stockage hybrides.
Dans le stockage hybride Redis, le rapport mémoire/disque est librement sélectionnable par l'utilisateur :
#🎜🎜 #
L'instance de stockage hybride Redis considère toutes les clés comme des données chaudes, garantissant que les performances de toutes les demandes d'accès aux clés sont efficaces et cohérentes au détriment d'une petite quantité de mémoire. Pour la partie Valeur, lorsque la mémoire est insuffisante, l'instance elle-même sélectionnera une partie de la valeur en fonction du temps d'accès récent, de la fréquence d'accès, de la taille de la valeur et d'autres dimensions en tant que données froides et la stockera de manière asynchrone sur le disque en arrière-plan jusqu'à ce que la mémoire soit épuisée. est inférieur au seuil spécifié. Dans l'instance de stockage hybride Redis, nous considérons toutes les clés comme des données chaudes et les enregistrons en mémoire pour les deux considérations suivantes :Identification des données chaudes et froides
Lorsque la mémoire est pleine, Redis lui-même éliminera les données selon la stratégie d'élimination définie par l'utilisateur, et l'écriture de données chaudes de la mémoire sur le disque peut également être considérée comme un processus « d'élimination ». Compte tenu des performances, de la précision et de la compréhension de l'utilisateur, nous utilisons des méthodes de calcul approximatives similaires à celles de Redis pour identifier les données chaudes et froides. Nous prenons en charge plusieurs stratégies et réduisons la consommation de processeur et de mémoire en échantillonnant de manière aléatoire une petite partie des données et en utilisant l'échantillonnage via le pool d'expulsion. .Informations historiques pour aider à améliorer la précision.
Le diagramme schématique du taux de réussite de l'algorithme d'élimination approximative de Redis est présenté sous différentes versions et configurations avec différents nombres d'échantillons d'échantillonnage. Les points de données qui ont été éliminés sont en gris clair, les points de données qui n'ont pas été éliminés sont en gris et les points de données ajoutés pendant le test sont en vert.
Échange de données chaudes et froides
Le processus d'échange de données chaudes et froides de stockage mixte Redis est terminé dans le thread IO en arrière-plan.
Hot data->cold dataMéthode asynchrone :
Lorsque la mémoire est proche de la valeur maximale, le thread principal génère une série de tâches d'échange de données ;
Le thread d'arrière-plan exécute ces tâches d'échange de données et informe le thread principal après l'achèvement ; # 🎜🎜#
#🎜🎜 #
Méthode de synchronisation :Cold data->Hot data
Avant d'exécuter la commande, le thread principal détermine d'abord si les valeurs impliquées dans la commande sont en mémoire ;
Sinon, générez une tâche de chargement de données, suspendez la client et principal Le thread continue de traiter les autres demandes du client ;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!