Mettre en place un serveur de cache distribué: memcached

Comment accélérer des requêtes SQL, récupérer des images (comme des vignettes) ultra rapidement ou encore gérer des millions de cookies de manière distribué…

Première solution : Ajouter des serveurs … :-(


Servers or memcached

Autre solution : mettre en place un stockage rapide et partagé qui regroupe l’ensemble de ces données.

Nouveau problème, comment gérer la mise à jour des données pendant la lecture, gérer les lock, le multi threading pour répondre aux requêtes… Bref cela devient un réel projet et donc un développement à part entière.

Pour éviter ce type développement et mettre en place une architecture solide et fiable il existe une solution toute prête…memcached. Ce logiciel crée un serveur contenant un ‘gros tableau’. Pour chaque clef, une valeur. Et c’est tout !

Vous l’aurez compris la clef peut être une requête, une url, un userId, ou n’importe quel MD5/hash représentant un élément à mettre en cache.

Il existe des API pour le PHP, le Ruby, le Java, le Python, et bien d’autres, tous les détails ici : http://danga.com/memcached/

Pour l’installation je vous conseille cette page : http://blog.ajohnstone.com/archives/installing-memcached/

Bon tests et j’espère bonne utilisation.

Vos commentaires sur son utilisation sont les bienvenus.

Sur le même thème :

6 Responses to “Mettre en place un serveur de cache distribué: memcached”

  1. Faut il utiliser un CDN (type Akamai) pour gérer son trafic web Says:

    [...] Enfin, il reste Amazon, mais sur des grosses volumétrie en bande passante (pas en terme d’espace disque) les solutions maison sont également plus économiques. C’est étonnant vu les prix, mais en regardant de très près une architecture bien optimisée et plus rentable (Ex memcached). [...]

  2. La diversité de la plateforme technique Meetic Says:

    [...] de cache. Ils permettent de donner un peu d’air à un système extrêmement sollicité. Ce type de cache sur BDD permet de démultiplier (x10) l’exécution des requêtes [...]

  3. Facebook passe le cap des 10 000 serveurs (Apache, MySql, Memcached) Says:

    [...] 10 000 serveurs près de 20% sont des serveurs MySQL, ils sont épaulés par un petit millier de serveurs memcached. Au niveau hardware il s’agit de serveurs Rackable, encore peu connu en France mais utilisé [...]

  4. Danga : Gérer la montée en charge des services web Says:

    [...] déjà présenté memcached (un excellent outil pour mettre en RAM n’importe quel couple clef <-> valeur). [...]

  5. Améliorer les performances d’un site : MemCached ou MySql Says:

    [...] l’outil idéal pour ‘cacher’ une base c’est MemCache. En effet, Memcached est parfait pour aider une base de données sur laquelle les requêtes sont complexes ou dans le cas qu’une base non/mal [...]

  6. Planning des évolutions de votre architecture web Says:

    [...] 4 : La complexité commence : Ajouter du memcached (ou autre), les réplications entre les bases de données deviennent trop gourmandes en ressources [...]

Leave a Reply