¿Cuál debo usar para una aplicación basada en web: Redis o Memcached? ¿Memchached tiene la función que permite ejecutar Python contra él? Si no, ¿hay alguna razón por la que debería elegir uno sobre el otro?

Redis ofrece mucho más que solo caché. Incluso puede usarlo como un almacén de datos porque puede conservar datos en el disco. Redis tiene muchas operaciones integradas que de lo contrario tendría que desarrollar por su cuenta. Una ventaja importante durante el almacenamiento en caché es que las claves pueden ser cadenas simples o tipos más complejos (hashes, listas, conjuntos, etc.). También permite el desalojo de artículos por parte de LRU.

Pub / Sub: puede realizar un seguimiento de los suscriptores y la información que les interesa. Puede utilizar SUSCRIBIRSE, SUSCRIBIRSE y PUBLICAR.

Colas: puede usar una estructura de datos de cola normal, Redis también tiene comandos de bloqueo de cola.

Análisis de eventos en tiempo real (estadísticas, antispam, etc.): el uso de las primitivas de Redis es realmente sencillo implementar un sistema de filtrado de seguimiento en tiempo real o un sistema de filtrado de spam.

Ordenar por votos y tiempo del usuario: funcionalidad de tipo de tabla de clasificación (Quora / Reddit / Digg), donde la puntuación cambia con el tiempo.

Soporte transaccional: proporciona soporte transaccional. Ver Transacciones – Redis.

Redis

Incluso si no planea usar ninguna de sus características diferenciales, es una buena opción. Esto se debe simplemente a que puede configurar Redis para que se comporte exactamente como memcache deshabilitando la persistencia (deshabilite todas las entradas “guardar” en redis.conf).

Habla un superconjunto del protocolo memcache, por lo que puede usar las bibliotecas de cliente memcache para interactuar con Redis, incluso. Nadie tiene que saberlo.

A partir de ahí, puede ampliar sus usos como mejor le parezca:

  • En lugar de almacenar listas de valores serializadas en una clave determinada, conviértala en una lista o conjunto de Redis. Blammo, ahora tienes acceso a agregar, establecer intersecciones y una gran cantidad de operaciones que se pueden descargar en la caché.
  • ¿A quién no le gusta el soporte específico para hashes en su almacén de datos?
  • Las versiones recientes de Redis agregaron soporte para LUA como lenguaje de script en el servidor. No se vuelva loco y mueva la lógica de negocios a su caché, pero definitivamente puede ayudar con algunos casos más complejos.
  • Y mucho más.

Usa Redis.

  1. Si desea un almacén de datos altamente escalable que pueda compartir varias aplicaciones (o incluso servidores), debe usar redis.
  2. Si no está de acuerdo con el calentamiento de su caché con cada reinicio, redis es lo que debe usar.
  3. Si desea eliminar o caducar elementos de su caché de su elección, redis es lo que debe usar.
  4. Si desea consultar un tipo particular de un objeto, redis es lo que debe usar.

Y necesitará todas las cosas anteriores, así que use Redis.

He usado Memcached y Redis y puedo asegurarle que Redis es fantástico y mucho más estable. Antirez y su equipo han hecho un trabajo fenomenal. Sí, memcached le ofrece una agrupación sólida, pero, de nuevo, también podría usar Varnish con Redis.

En Redis, Memcached, Speed, Benchmarks y The Toilet, del propio Antirez.