2009-05-15 6 views

Respuesta

138

Es bastante simple. Escribe valores usando claves y tiempos de caducidad. Obtienes valores usando claves. Puede caducar las claves del sistema.

La mayoría de los clientes siguen las mismas reglas. Puede leer las instrucciones genéricas y las mejores prácticas en the memcached homepage.

Si realmente quieres profundizar en ello, miraría la fuente. Aquí está el comentario de cabecera:

""" 
client module for memcached (memory cache daemon) 

Overview 
======== 

See U{the MemCached homepage<http://www.danga.com/memcached>} for more about memcached. 

Usage summary 
============= 

This should give you a feel for how this module operates:: 

    import memcache 
    mc = memcache.Client(['127.0.0.1:11211'], debug=0) 

    mc.set("some_key", "Some value") 
    value = mc.get("some_key") 

    mc.set("another_key", 3) 
    mc.delete("another_key") 

    mc.set("key", "1") # note that the key used for incr/decr must be a string. 
    mc.incr("key") 
    mc.decr("key") 

The standard way to use memcache with a database is like this:: 

    key = derive_key(obj) 
    obj = mc.get(key) 
    if not obj: 
     obj = backend_api.get(...) 
     mc.set(key, obj) 

    # we now have obj, and future passes through this code 
    # will use the object from the cache. 

Detailed Documentation 
====================== 

More detailed documentation is available in the L{Client} class. 
""" 
+0

Gracias, los comentarios del código fuente son muy útiles. –

+0

No puedo entender qué es 'mc'. ¿Puede usted explicar por favor? – bodacydo

+9

'mc' es el objeto Cliente Memcache, representa la conexión memcached. – moshen

40

Yo aconsejaría que use pylibmc lugar.

Puede actuar como un reemplazo directo de python-memcache, pero mucho más rápido (como está escrito en C). Y puede encontrar documentación útil para él here.

Y a la pregunta, ya que pylibmc simplemente actúa como un reemplazo directo, todavía puede consultar la documentación de pylibmc para su programación de python-memcache.

+2

Tenga en cuenta que 'pylibmc' no funciona en Python 3. – jbg

+2

Si bien es cierto,' python-memcached' tampoco es compatible con Python 3. pylibmc se está preparando para un lanzamiento con soporte para Python 3 – anthonyryan1

+8

Ambos soportan Python3. – Aidin

7

Una buena regla general: utilice el sistema de ayuda incorporado en Python. Ejemplo debajo ...

[email protected]:~$ python 
Python 2.7.3 (default, Aug 1 2012, 05:14:39) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import memcache 
>>> dir() 
['__builtins__', '__doc__', '__name__', '__package__', 'memcache'] 
>>> help(memcache) 

------------------------------------------ 
NAME 
    memcache - client module for memcached (memory cache daemon) 

FILE 
    /usr/lib/python2.7/dist-packages/memcache.py 

MODULE DOCS 
    http://docs.python.org/library/memcache 

DESCRIPTION 
    Overview 
    ======== 

    See U{the MemCached homepage<http://www.danga.com/memcached>} for more about memcached. 

    Usage summary 
    ============= 
... 
------------------------------------------ 
+0

Esto ya no es válido. 2.7.3 no incluye un módulo de Memcache instalado por defecto, y el enlace a la documentación también está roto. – iandouglas

+1

@iandouglas: lo que escribes es cierto para mi debian 6.0.7, pero solo tuve que 'apt-get install python-memcache' para obtener el módulo. – jfg956

Cuestiones relacionadas