Cómo almacenar datos de aplicaciones en caché con Memcache de Redis Labs

Puedes usar Memcached Cloud de Redis Labs para almacenar en caché los datos de aplicación. Memcached Cloud es un servicio administrado por completo que ofrece una variedad de opciones para ejecutar Memcached.

Precios

Redis Labs ofrece un nivel gratuito que brinda 30 MB de almacenamiento en caché.

Cómo establecer la configuración

Para usar Memcached Cloud de Redis Labs:

  1. Regístrate con una cuenta de Redis Labs.
  2. Crea un depósito Memcached con Memcached Cloud. Para la latencia más baja, crea el depósito de Memcache en la misma región que tu aplicación.
  3. Edita el depósito y configura el nombre de usuario y contraseña.
  4. Ten en cuenta el Endpoint del depósito.

Cómo instalar una biblioteca cliente de Memcached

Debido a que Redis Labs utiliza autenticación SASL, debes usar un cliente Memcached compatible con el protocolo binario y la autenticación SASL.

Te recomendamos que uses pylibmc.

Se necesita libmemcached para instalar pylibmc. El entorno de ejecución incluye esta biblioteca. Si deseas ejecutar y probar la aplicación de manera local, debes instalar libmemcached en tu SO:

Linux

Para los derivados de Debian y Ubuntu, utiliza lo siguiente:

sudo apt-get install libmemcached-dev libsasl2-dev libsasl2-modules sasl2-bin

Para Red Hat, CentOS y Fedora, usa yum de la siguiente manera:

yum install libmemcached-devel libsasl2-devel

Para Linux Arch, utiliza lo siguiente:

pacman -S libmemcached

macOS

  1. Instala Homebrew.

  2. Instala libmemcached con el siguiente comando:

    brew install libmemcached
    

Windows

En la actualidad, pylibmc no funciona en Windows. Puedes intentar usar otro cliente de Python almacenado en Memcache.

Incluye pylibmc en tu archivo requirements.txt:

Flask==1.0.2
gunicorn==19.9.0
pylibmc==1.6.0

Si la ejecución es local, instala tus dependencias con pip de la siguiente manera:

pip install -r requirements.txt

Conectarse a Memcache de Redis Labs

Configura variables del entorno en tu app.yaml con el extremo, el nombre de usuario y la contraseña del servidor de Memcached para tu depósito de Memcached de Redis Labs.

env_variables:
  MEMCACHE_SERVER: your-memcache-server
  # If you are using a third-party or self-hosted Memcached server with SASL
  # authentiation enabled, uncomment and fill in these values with your
  # username and password.
  # MEMCACHE_USERNAME: your-memcache-username
  # MEMCACHE_PASSWORD: your-memcache-password

Utiliza las variables del entorno en tu código de aplicación para configurar un cliente de Memcached:

# Environment variables are defined in app.yaml.
MEMCACHE_SERVER = os.environ.get('MEMCACHE_SERVER', 'localhost:11211')
MEMCACHE_USERNAME = os.environ.get('MEMCACHE_USERNAME')
MEMCACHE_PASSWORD = os.environ.get('MEMCACHE_PASSWORD')

memcache_client = pylibmc.Client(
    [MEMCACHE_SERVER], binary=True,
    username=MEMCACHE_USERNAME, password=MEMCACHE_PASSWORD)

Cómo probar Memcached de forma local

Si quieres probar tu aplicación de forma local, aun así puedes conectarte a tu depósito de Memcached de Redis Labs. Sin embargo, tal vez quieras ejecutar una instancia local de Memcached y, de ese modo, evitar la interacción con los datos de producción.

Para ejecutar una instancia local de Memcached, instala un daemon de Memcached en tu SO:

Linux

  1. Usa el paquete Memcached.

    Para los derivados de Debian y Ubuntu:

    apt-get install memcached
    

    Para Red Hat, CentOS y Fedora, usa yum de la siguiente manera:

    yum install memcached
    

    Para Linux Arch:

    pacman -S memcached
    
  2. Ejecútalo como un daemon (o consulta systemd sobre un inicio automático):

    memcached -d
    

macOS

  1. Instala Homebrew.

  2. Instala memcached:

    brew install memcached
    
  3. Ejecútalo como un daemon:

    memcached -d
    

Windows

  1. Compila tu propio Memcached. Otra alternativa es descargar objetos binarios de software gratuito.

  2. Ejecútalo como un daemon:

    memcached -d
    
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación del entorno de App Engine Flexible para Python