performance postgresql node.js redis key-value-store

performance - Postgres Hstore vs. Redis-rendimiento sabio



postgresql node.js (2)

Leí sobre HStores en Postgres, algo que también ofrece Redis.

Nuestra aplicación está escrita en NodeJS. Dos preguntas:

  • En cuanto al rendimiento, ¿es Postgres HStore comparable a Redis?

  • para el almacenamiento de la sesión, ¿qué recomendaría? ¿Redis o Postgres con algún otro tipo de tipo de datos (como HStore, o incluso la tabla relacional habitual)? ¿Y qué tan mala es una opción frente a la otra?

Otra restricción es que necesitaremos usar los datos que ya están en PostgreSQL y combinarlos con las sesiones activas (que no estamos seguros de dónde almacenar en este punto, si estamos en Redis o PostgreSQL).

Por lo que hemos leído, se nos ha indicado que utilicemos Redis como administrador de sesión, pero debido a la restricción de PostgreSQL, no estamos seguros de cómo combinar ambos y los posibles problemas de rendimiento que pueden surgir.

¡Gracias!


Redis será más rápido que Postgres porque Pg ofrece garantías de confiabilidad en sus datos (cuando la transacción se confirma, se garantiza que está en el disco), mientras que Redis tiene un concepto de escritura en el disco cuando lo desea, por lo que no debería serlo. utilizado para datos críticos.

Redis parece ser una buena opción para sus datos de sesión, o incluso almacenar en una cookie o en su Javascript del lado del cliente. Pero si necesita datos de su base de datos en cada solicitud, es posible que no valga la pena involucrar a Redis. Depende mucho de tu aplicación.


Usando PostgreSQL como administrador de sesión es generalmente una mala idea.

Para mayores de 9.1, el límite físico de transacción por segundo se basó en parámetros de medios persistentes. Para la administración de sesiones, por lo general no necesita MGA (porque no hay colisión) y eso significa que MGA es una sobrecarga y las bases de datos sin MGA y ACID deben ser significativamente más rápidas (10 o 100).

Conozco un caso de uso, en el que PostgreSQL se usó para la administración de sesiones y el rendimiento fue realmente terrible e inestable, fue una combinación de casi 10000 sesiones en vivo. Cuando la gestión de la sesión se trasladó a memcached, el rendimiento y la estabilidad aumentaron significativamente. PostgreSQL se puede utilizar para 100 sesiones en vivo sin problema, probablemente. Para números más altos hay mejores herramientas.