Maison > Article > base de données > Solution pour redis mémoire pleine
La mémoire Redis est une solution complète :
1, augmentez la mémoire
2, utilisez la stratégie d'élimination de la mémoire.
3, cluster Redis.
Concentrons-nous sur la deuxième et la troisième solutions :
La deuxième :
Nous savons que le fichier de configuration des paramètres redis Le paramètre maxmemory peut contrôler sa taille maximale de mémoire disponible (octets).
Alors, que dois-je faire lorsque la mémoire requise dépasse la mémoire maximale ?
À ce moment, la politique maxmemory dans le fichier de configuration entre en jeu.
La valeur par défaut est noeviction.
Ci-dessous, je vais énumérer les règles d'élimination pour supprimer les clés Redis lorsque la mémoire disponible est insuffisante.
Algorithme LRU, algorithme le moins récemment utilisé, algorithme le moins récemment utilisé. C'est-à-dire que la clé la moins récemment utilisée est supprimée par défaut.
Mais vous devez faire attention à une chose ! Redis ne supprime pas avec précision la clé la moins récemment utilisée parmi toutes les clés, mais sélectionne au hasard 3 clés et supprime la clé la moins récemment utilisée parmi ces trois clés.
Ensuite, le numéro 3 peut également être défini, et l'emplacement correspondant est maxmeory-samples dans le fichier de configuration.
La troisième méthode :
Redis ne prend en charge qu'une seule instance, mémoire Généralement jusqu'à 10 ~ 20 Go. Pour les systèmes dotés de 100 à 200 Go de mémoire, cela doit être pris en charge via le clustering.
Le cluster Redis dispose de trois méthodes : partitionnement client, partitionnement proxy, RedisCluster
Partage client
Implémentez vous-même le routage via le code métier
Avantages : vous pouvez contrôler vous-même l'algorithme de partitionnement et les performances sont meilleures que celles du proxy
Inconvénients : les coûts de maintenance élevés, l'expansion/la réduction et d'autres opérations d'exploitation et de maintenance nécessitent votre propre recherche et développement
Agent Sharding
L'agent reçoit les demandes de données du programme métier, distribue ces demandes à la bonne instance Redis et les renvoie au programme métier selon les règles de routage. Implémenté à l'aide de middleware tels que Twemproxy et Codis.
Avantages : opération et maintenance faciles, le programme n'a pas à se soucier de la façon de lier les instances Redis
Inconvénients : cela entraînera une consommation de performances (environ 20 %), ne peut pas s'étendre/rétrécir en douceur , et doit exécuter des scripts pour migrer les données, ce qui est peu pratique (Codis optimise et implémente le pré-sharding basé sur Twemproxy pour réaliser un rééquilibrage automatique).
Cluster Redis
Avantages : Solution de cluster officielle, pas de nœud central, connexion directe au client, meilleures performances
Inconvénients : La solution est trop Lourd, incapable d'étendre/réduire en douceur, besoin d'exécuter les scripts correspondants, peu pratique, trop nouveau, pas de solutions matures correspondantes
Pour plus de connaissances sur Redis, veuillez prêter attention à la colonne tutoriel d'introduction à Redis .
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!