sql >> Base de Datos >  >> NoSQL >> Redis

¿Puede Redis 6 aprovechar las CPU multinúcleo?

Basándome en las notas de la versión, supongo que sí. Aquí hay una pequeña información de allí:

A pesar de la merecida reputación de Redis por su alto rendimiento, su arquitectura de subproceso único ha sido controvertida entre los ingenieros que se preguntaban si Redis podría ser aún más rápido. Redis 6 marca una nueva era:si bien conserva una interfaz central de acceso a datos de un solo subproceso, la E/S ahora tiene subprocesos.

Al delegar el tiempo dedicado a leer y escribir en los sockets de E/S a otros subprocesos, el proceso de Redis puede dedicar más ciclos a la manipulación, el almacenamiento y la recuperación de datos, lo que aumenta el rendimiento general. Esta mejora conserva las características transaccionales de las versiones anteriores, por lo que no tiene que repensar sus aplicaciones para aprovechar el mayor rendimiento. Del mismo modo, el comando DEL de subproceso único de Redis ahora se puede configurar para que se comporte como el comando UNLINK de subprocesos múltiples que ha estado disponible desde la versión 4 de Redis.

El rendimiento de una variable local casi siempre es imbatible. Por último, incluso una base de datos de tan alto rendimiento como Redis será mucho más lenta que acceder a algo desde la pila o el montón. Redis 6 agrega una nueva técnica para que las bibliotecas de clientes sofisticadas implementen una capa de almacenamiento en caché del lado del cliente para almacenar un subconjunto de datos en su propio proceso. Esta implementación es lo suficientemente inteligente como para administrar varias actualizaciones de los mismos datos y mantener sus datos lo más sincronizados posible, al tiempo que conserva las ventajas de Redis con la velocidad de las variables locales.

También puede verificarlo/compararlo con redis-benchmark o memtier harness para su instancia/perfil de carga de trabajo.