El hecho de que las tiendas Redis cosas en memoria no significa que está destinado a ser una memoria caché. He visto personas que lo utilizan como una tienda persistente de datos.
que puede ser utilizado como una memoria caché es un indicio de que es útil como un almacenamiento de alto rendimiento. Si su sistema Redis falla, puede perder datos que no se han vuelto a escribir en el disco. Hay algunas maneras de mitigar tales peligros, p. una réplica en espera activa. Si sus datos son 'críticos para la misión', como si manejara un banco o una tienda, Redis podría no ser la mejor opción para usted. Pero si escribes un juego de alto tráfico con datos en vivo persistentes o algunas cosas de interacción social y gestionas la probabilidad de que la pérdida de datos sea bastante aceptable, entonces Redis podría merecer la pena.
De todos modos, el punto sigue siendo, sí, Redis se puede utilizar como una base de datos.
Pero, ¿cómo se comprueba que la memoria caché en redis necesita una actualización? ¿Comparas el recuento de registros o hay una mejor manera? – Marconi
Esto generalmente se hace configurando un TTL para la clave: http://redis.io/commands/ttl. Si la llave expira, debe ir a la base de datos. Entonces, si la clave está en redis, entonces la usa. Tenga en cuenta que la implementación simple de esto causa algunos problemas: cuando una clave popular caduca tiene http://en.wikipedia.org/wiki/Thundering_herd_problem, desea utilizar http://en.wikipedia.org/wiki/Negative_cache, y su base de datos necesita http://en.wikipedia.org/wiki/Admission_control –
¿Podría definir "API compatible"? El protocolo es ciertamente diferente. Para citar el autor de Redis "Básicamente en el protocolo de memoría, la longitud de la carga fue uno de los argumentos separados por espacio, mientras que en el protocolo de Redis está en compensación fija (solo hay un carácter" $ "antes)» (Fuente: http: //antirez.com/post/redis-memcached-benchmark.html) Sin embargo, es cierto que, dado que ambos son clave/valor de almacenamiento, debería ser bastante sencillo adaptar el código utilizando Memcached para usar Redis en su lugar. Mi mejor suposición es que quería decir "puede sustituir un módulo/clase por otro", ¿verdad? – jpetazzo