Maison  >  Article  >  base de données  >  Solution pour redis mémoire pleine

Solution pour redis mémoire pleine

尚
avant
2020-04-30 09:10:062692parcourir

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.

Solution pour redis mémoire pleine

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!

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