Redis se puede usar como caché o como almacén permanente, pero si intenta mezclar ambos, puede terminar teniendo "problemas interesantes".
Cuando tiene memcached, tiene una cantidad máxima de memoria para el proceso, por lo que cuando se llena la memcached eliminará automáticamente las entradas utilizadas menos recientemente para dejar espacio para las nuevas entradas.
Puede configurar Redis para que tenga ese comportamiento también, pero no desea hacer eso si está utilizando Redis para el almacenamiento persistente, porque en ese caso podría perder claves que deben ser persistentes.
Así que si está utilizando el almacenamiento persistente para Redis, necesitaría tener dos procesos Redis diferentes: uno para sus claves persistentes, uno para el almacenamiento en caché. Por supuesto, siempre puede tener un solo proceso y establecer tiempos de caducidad para cada elemento de caché, pero nadie le aseguraría que no alcanza el límite de memoria antes de que caduquen y pierda datos, por lo que en la práctica necesitaría dos procesos. Además, si está configurando una configuración maestro/esclavo para sus datos persistentes y almacena la caché en el mismo servidor, básicamente está desperdiciando RAM, por lo que los procesos separados son el camino a seguir.
Sobre el rendimiento, tanto redis como memcached son MUY efectivos, y en pruebas diferentes están en el mismo rango cuando se trata de obtener/extraer datos, pero memcached es mejor cuando solo se necesita un caché.
¿Por qué es esto así? En primer lugar, dado que memcached solo tiene una misión, que almacena claves/valores, no tiene ningún costo adicional cuando se trata de almacenar metadatos. Redis, por otro lado, ofrece diferentes estructuras de datos, por lo que almacena más metadatos que cada clave. Un ejemplo de esto: es mucho más "barato" almacenar datos en un hash en Redis en lugar de usar claves individuales. No obtienes nada de esto en memcached, ya que solo hay un tipo de datos. Esto significa que con la misma cantidad de memoria en sus servidores puede almacenar más datos en memcached que en redis. Si tiene una instalación relativamente pequeña, realmente no le importa, pero en el momento en que comience a ver crecimiento, créame, querrá mantener esos datos bajo control.
Así que, por mucho que me guste Redis, prefiero tener memoria para mis necesidades de caché y redis para mis necesidades persistentes de almacenamiento/almacenamiento temporal/cola. Aún uso Redis como "caché", pero no como temporal, con caducidad, sino como un caché de búsqueda para guardar la lectura de un almacenamiento más costoso. Por ejemplo, mantengo un mapeo entre los ID de usuario y los apodos en Redis. Nunca expiro estas asignaciones, por lo que Redis es un lugar perfecto para ello.
En el caso de que tenga que lidiar con una pequeña cantidad de datos, entonces podría tener sentido su idea de tener una sola tecnología para todo, pero en el momento en que empiece a crecer unos pocos cientos de MB, yo diría ambos.