110 votes

Memcache(d) vs Vernis pour accélérer les 3 tier architecture web

Je vais essayer d'augmenter la vitesse de mon indice de référence (3 tier architecture web), et j'ai quelques questions d'ordre général liées à Memcache(d) et de Vernis.

  • Quelle est la différence?
    Il me semble que le Vernis est derrière le serveur web, la mise en cache des pages web et ne nécessite pas de changement de code, il suffit de configuration.
    De l'autre côté, Memcached est à des fins générales système de mise en cache et la plupart du temps utilisé pour le cache de résultat à partir de la base de données et ne nécessite variation get méthode (première recherche dans le cache).

  • Puis-je utiliser les deux? Vernis à l'avant du serveur web et Memcached pour la base de données mise en cache?

  • Ce qui est une meilleure option?

    (scénario 1 - pour la plupart d'écriture,
    scénario 2 - principalement en lecture,
    scénario 3 - lecture et écriture sont similaires)

267voto

Jeff Ferland Points 9485
  • Le vernis est à l'avant du serveur web; c'est un reverse proxy http qui met en cache.
  • Vous pouvez utiliser les deux.
  • La plupart d'écrire -- Vernis aurez besoin besoin d'avoir touché les pages de la purge. Cela va entraîner une surcharge et peu d'avantages pour les pages modifiées.
  • Principalement en lecture -- Vernis sera probablement couvrir la plus grande partie.
  • Similaire de lecture et d'écriture -- Vernis va servir a beaucoup de pages pour vous, Memcache permettra de fournir de l'information pour les pages qui ont un mélange de connu et de nouvelles données vous permettant de générer des pages plus rapide.

Un exemple qui pourrait s'appliquer à stackoverflow.com: en ajoutant ce commentaire invalide le cache de la page, alors cette page devrait être effacé de Vernis (et aussi ma page de profil, qui n'est probablement pas une valeur mise en cache pour commencer. Se souvenant d'invalider toutes les pages concernées peuvent être un peu d'un problème). Tous les commentaires, cependant, sont encore dans Memcache, de sorte que la base de données n'a qu'à écrire ce commentaire. Rien d'autre ne doit être fait par la base de données pour la génération de la page. Tous les commentaires sont tirées par les Memcache, et la page est recached jusqu'à ce que quelqu'un touche à nouveau (peut-être par le vote de ma réponse). Encore une fois, la base de données écrit le vote, à toutes les autres données sont extraites de Memcache, et la vie est rapide.

Memcache enregistre votre DB de faire beaucoup de lecture en travaux, le Vernis permet d'économiser votre dynamique du serveur web de charge CPU par vous faire générer des pages moins fréquemment (et allège la db charger un peu aussi si ce n'est pour Memcache).

32voto

Joe Hyde Points 522

Mon expérience vient de l'utilisation de Vernis avec Drupal. En termes simples que possible, voici comment je répondrais:

En général, les Vernis fonctionne pour non authentifié (par l'intermédiaire de cookies) de la circulation et memcached la mise en cache sera authentifié de la circulation.

Donc utiliser les deux.

-3voto

Oren Yakobi Points 79

Le vernis est une "HTTP équilibreur de charge" que de la mise en cache (caches de pages complètes), Memcached est un simple key-value store.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X