Memcached : mise en cache et partage de données entre applications

Publié le février 24, 2008

Memcached est un outils de mise en mémoire cache de données. Le but est de charger en mémoire des données à durée de vie assez longue et ensuite de ne plus les lire systématiquement par exemple dans une base de données avec un temps d’accès long et une charge CPU non négligeable.

A chaque donnée mise dans le cache est associée une « durée de vie » (5 minutes, 1 heure, 1 jour, …). A la fin de cette durée de vie, les données ne sont plus disponibles et donc doivent être relues dans une base de données par exemple et remises dans le cache.

Memcached est un démon (un service sous Windows) qui est accessible au moyen d’une communication sur un port TCP. Il n’est pas nécessaire de s’y connaître en programmation et protocoles réseaux car des librairies spécifiques existent pour différents langages tel que PHP ou Java. Ce mode de fonctionnement permet d’utiliser Memcached pour stocker des données au service d’une application Web et donc disponibles pour une ou plusieurs pages de l’application. Il est également possible de partager des données entre plusieurs applications sur un même serveur ou encore plus fort de partager des données entre plusieurs serveurs. Dans le cas de partage de données entre plusieurs serveur, le démon Memcached est installé sur un seul serveur.

Le site officiel de Memcached est ici. Il s’agit d’une version pour Linux, mais un portage pour Windows est disponible ici.

Des API clients sont disponibles pour un grand nombre de langages de programmation. La liste est ici.

Memcached est disponible sous forme de package dans la plupart des distributions Linux. Par contre, ces packages ne sont pas toujours à jour. Par exemple, pour Debian Etch la version disponible est 1.1.12 (de fin 2006) alors que la dernière version est 1.2.4. Il peut être alors souhaitable d’installer Memcached sans utiliser le package de sa distribution Linux. Un très bon article (en anglais) décrivant l’installation manuelle de Memcached sous Debian Etch est disponible ici. Il faut vérifier pour chacune des librairies citées dans cet article que des versions plus récentes n’existent pas.

Voici une série d’articles intéressants sur Memcached :

De mon coté, j’utilise Memcached pour le site Crossfeeds. Le but est d’éviter une requête SQL complexe (avec group by et order by) et longue pour l’affichage de la liste des langues dans les options de recherche ici.

One Response to “Memcached : mise en cache et partage de données entre applications”

  1. Moi j’ai un problème pour le moment avec memCache, je ne peux pas stocker des variables de plus de 16318 octets

    et le compress ne marche jamais.

    Revision $Revision: 1.39 $



Laissez un commentaire

Navigation

Categories
  •  Technique (35)
  •  Lucene / Solr (21)
  •  Moteur de recherche (19)
  •  Sites à découvrir (12)
  •  Web 2.0 (12)
  •  Productivité (10)
  •  Debian (6)
  •  Flux RSS (6)
  •  Web (6)
  •  Hébergement (3)
  •  Non classé (3)
  •  Wordpress (3)
  •  Freelance (2)
  •  Référencement (2)
  •  vmware (2)
  •  Mac OS (1)
  •  Réseaux (1)
  • Tags
  •  Solr (14)
  •  Lucene / Solr (11)
  •  RSS (5)
  •  Wordpress (5)
  •  java (5)
  •  tomcat (4)
  •  vmware (4)
  •  Crawler (3)
  •  Debian (3)
  •  OPML (3)
  •  Crossfeeds (2)
  •  PHP (2)
  •  Plugins (2)
  •  apt (2)
  •  mercurial (2)
  •  moteur de recherche (2)
  •  mysql (2)
  •  Agrégateur (1)
  •  Bitbucket (1)
  •  CAS (1)
  •  Debugbar (1)
  •  ESXi (1)
  •  Emilie Ogez (1)
  •  Fast (1)
  •  Firebug (1)
  •  Firefox (1)
  •  Flux RSS (1)
  •  Freelance (1)
  •  Google Chrome (1)
  •  Huridocs (1)
  •  Hurisearch (1)
  •  IE (1)
  •  IETester (1)
  •  Migration Day 2008 (1)
  •  Ogez (1)
  •  Poll (1)
  •  Référencement (1)
  •  SEO (1)
  •  Savoirs en réseau (1)
  •  Sondage (1)
  •  SurveyGizmo (1)
  •  WP-Poll (1)
  •  aiderss (1)
  •  ant (1)
  •  apache (1)
  •  aptitude (1)
  •  backup (1)
  •  bande passante (1)
  •  base de registre (1)
  •  catégorie (1)
  •  configuration (1)
  •  curl (1)
  •  dell (1)
  •  detection langue (1)
  •  dojo (1)
  •  débit (1)
  •  etch (1)
  •  extjs (1)
  •  framwork (1)
  •  gateway (1)
  •  git (1)
  •  google (1)
  •  hg (1)
  •  hosted (1)
  •  hosting (1)
  •  iis (1)
  •  indeed (1)
  •  javascript (1)
  •  jdk (1)
  •  jquery (1)
  •  log (1)
  •  magpie (1)
  •  mg4j (1)
  •  mod_auth_cas (1)
  •  mod_cas (1)
  •  mootools (1)
  •  morphologique (1)
  •  n-gram (1)
  •  ngp (1)
  •  ngram (1)
  •  ngramj (1)
  •  nightly build (1)
  •  nuage de tags (1)
  •  openSSL (1)
  •  openSUSE (1)
  •  optimisation (1)
  •  pagerank (1)
  •  patch (1)
  •  performances (1)
  •  perl (1)
  •  phpCAS (1)
  •  ping (1)
  •  pipeline (1)
  •  podcast (1)
  •  presse-papier (1)
  •  prototype (1)
  •  saas (1)
  •  scriptaculous (1)
  •  serveur (1)
  •  shrink (1)