¿Existe una diferencia notable en el rendimiento y la latencia entre el alojamiento de Redis en un servidor de base de datos central y el local en cada servidor web?

Podría haber una gran diferencia en el rendimiento y la latencia, pero en realidad también podría ser más rápido en un servidor central.

Mover datos a través de la red desde la máquina del servidor web a la máquina de la base de datos incurrirá en una penalización de latencia, que puede ser impredecible en ciertos entornos de alojamiento. El tamaño máximo del paquete también es probablemente mucho más pequeño en su interfaz Ethernet que en el bucle invertido, por lo que las respuestas grandes y las interacciones canalizadas generarán más sobrecarga de lo que hablarían con un Redis local.

Sin embargo, puede terminar siendo más rápido, o al menos más rentable, utilizando un servidor de base de datos dedicado. Puede cargar un servidor Redis con una gran cantidad de RAM para almacenar sus datos y usar menos datos en el cliente. Si está utilizando Redis como caché frente a algún otro tipo de base de datos, compartir el acceso al caché podría generar más aciertos de caché, que es un tipo de “más rápido”.

Redis admite el fragmentación del lado del cliente ( http://github.com/nrk/predis ) utilizando hashing consistente en el cliente. Esto le permite distribuir sus lecturas / escrituras en un conjunto de nodos Redis. No todos los clientes de Redis son iguales y tienen esta funcionalidad, por lo tanto, evalúe si el cliente en el idioma elegido lo admite y / o es adecuado para sus necesidades. Tenga en cuenta que este es un fragmento del lado del cliente, lo que significa que no hay soporte de conmutación por error ni ninguna de esas garantías. Pero dado que su pregunta se refiere al rendimiento y la latencia y la difusión de lecturas y escrituras afecta esas características, la respuesta es “Sí”. Sharding conlleva sus propios desafíos, así que puede variar de ellos mientras lo evalúa.