Cet article vous présente principalement en détail le principe de fonctionnement de Memcached. Vous pouvez également vous référer au Tutoriel vidéo Memcached ou au Manuel Memcached.
1. Introduction :
Memcache est un système de cache d'objets à mémoire distribuée haute performance en maintenant une énorme table de hachage unifiée dans la mémoire, il peut être utilisé pour stocker diverses données dans différents formats. , y compris les images, les vidéos, les fichiers et les résultats de recherche dans les bases de données, etc. En termes simples, les données sont appelées dans la mémoire puis lues depuis la mémoire, améliorant ainsi considérablement la vitesse de lecture. Memcached s'exécute sur un ou plusieurs serveurs en tant que démon et recevra les connexions et opérations client à tout moment.
2. Caractéristiques :
1. Il n'y a pas de limite à la quantité de données d'éléments qui peuvent être enregistrées dans Memcached, tant qu'il y a suffisamment de mémoire.
2. La mémoire maximale utilisée par un seul processus Memcached est de 2 Go. Pour utiliser plus de mémoire, vous pouvez ouvrir plusieurs processus Memcached sur plusieurs ports
3. Le délai d'expiration maximum des données est de 30 jours. permanent Il expirera également à ce moment-là, constante REALTIME_MAXDELTA
4. La longueur maximale de la clé est de 250 octets, et elle ne peut pas être stockée si elle est supérieure à cette longueur. Elle est contrôlée par la constante KEY_MAX_LENGTH 250
5. Les données maximales pour un seul élément sont de 1 Mo, et les données dépassant 1 Mo ne seront pas stockées, contrôlées par la constante POWER_BLOCK 1048576,
6. Il s'agit de la taille de dalle par défaut
7. Le nombre maximum de connexions simultanées est de 200. , passé
Contrôlé par freetotal dans conn_init(), le nombre maximum de connexions logicielles est de 1024, via settings.maxconns=1024
Contrôler les paramètres liés à l'occupation de l'espace : settings.factor=1.25, settings.chunk_size=48,
Affecte l'occupation des données de la dalle et la méthode de progression
8. memcached est un service de communication socket non bloquant, basé sur la bibliothèque libevent. En raison de la communication non bloquante, la vitesse de lecture et d'écriture de la mémoire est très rapide.
9.memcached est divisé en serveur et client. Plusieurs serveurs et clients peuvent être configurés. Il est utilisé dans une large gamme de services distribués.
10. memcached est très efficace en tant que plateforme de distribution de données à petite échelle.
11.memcached a une correspondance biunivoque entre la clé et la valeur. La clé par défaut ne peut pas dépasser 128 caractères. Section, la taille par défaut de la valeur est 1M, ce qui correspond à une dalle. Si vous souhaitez stocker une valeur de 2M (continue), vous ne pouvez pas utiliser deux dalles, car les deux dalles ne sont pas consécutives et ne peuvent pas être stockées en mémoire. Pour le stockage, il est nécessaire de modifier la taille des dalles. Lorsque plusieurs clés et valeurs sont stockées, même si les dalles ne sont pas entièrement utilisées, les autres données ne seront pas stockées.
12. Mettez des données de faible valeur, sinon si le serveur tombe en panne, toutes les données seront perdues
3 Occasions applicables
1. Étant donné que Memcached lui-même est basé sur un système distribué, il est particulièrement adapté aux grands systèmes distribués.
2. Cache frontal de la base de données. Les bases de données constituent souvent le goulot d’étranglement des systèmes de sites Web. Un accès simultané important à la base de données entraîne souvent un débordement de la mémoire du site Web. Bien sûr, nous pouvons également utiliser le mécanisme de mise en cache d'Hibernate. Cependant, Memcached est basé sur la distribution et peut être indépendant de l'application du site Web elle-même. Il est donc plus adapté aux grands sites Web pour diviser les applications.
3. Partage de données entre serveurs. Par exemple, nous divisons le système de connexion et le système de requête du site Web en deux applications, les plaçons sur des serveurs différents et les regroupons. Ensuite, une fois l'utilisateur connecté, comment les informations de connexion se synchronisent-elles du serveur du système de connexion au système de requête. serveur ? Du drap de laine ? À l'heure actuelle, nous pouvons utiliser memcached. Le système de connexion met en cache les informations de connexion et le système de requête peut obtenir les informations de connexion, tout comme pour obtenir des informations locales.
4. Occasions inapplicables
Pour les applications qui ne nécessitent pas de "distribution", ne nécessitent pas de partage, ou sont simplement suffisamment petites pour n'avoir qu'un seul serveur, memcached n'apportera aucun avantage. au contraire, cela ralentira l'efficacité du système, car la connexion réseau nécessite également des ressources
Cet article a une certaine valeur de référence, j'espère qu'il sera utile à tous ceux qui en ont besoin !
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!