Exemples Memcache

Cette page fournit des exemples de code encode Python pour l'utilisation de Memcache. Memcache est un système très performant de mise en cache des objets dans une mémoire distribuée. Il fournit un accès rapide aux données en cache. Pour en savoir plus sur Memcache, consultez la page Présentation de Memcache.

Format Memcache

Memcache est généralement utilisé comme suit :

  • L'application reçoit une requête de l'utilisateur ou de l'application.
  • L'application vérifie si les données nécessaires à la satisfaction de cette requête sont dans le cache mémoire.
    • Si les données s'y trouvent, l'application les utilise.
    • Si les données n'y sont pas, l'application interroge le magasin de données et stocke les résultats dans un cache mémoire pour les utiliser ultérieurement.

Le pseudo-code ci-dessous représente une requête type de cache mémoire :

def get_data():
    data = memcache.get('key')
    if data is not None:
        return data
    else:
        data = query_for_data()
        memcache.add('key', data, 60)
    return data

ndb utilise Memcache en interne pour accélérer les requêtes. Cependant, si vous le souhaitez, vous pouvez également ajouter explicitement des appels Memcache pour mieux contrôler les accélérations.

Mettre des données en cache

L'exemple suivant montre plusieurs façons de définir des valeurs dans Memcache à l'aide de l'API Python.

# Add a value if it doesn't exist in the cache
# with a cache expiration of 1 hour.
memcache.add(key="weather_USA_98105", value="raining", time=3600)

# Set several values, overwriting any existing values for these keys.
memcache.set_multi(
    {"USA_98115": "cloudy", "USA_94105": "foggy", "USA_94043": "sunny"},
    key_prefix="weather_",
    time=3600
)

# Atomically increment an integer value.
memcache.set(key="counter", value=0)
memcache.incr("counter")
memcache.incr("counter")
memcache.incr("counter")

Pour en savoir plus sur les méthodes add(), set_multi() et set(), consultez la documentation de l'API Python memcache.