KeyDB alternativa multi-hilo de Redis

KeyDB a Redis

Soy muy dado a buscar siempre como optimizar procesos, en algunas ocasiones cuando trabajamos con aplicaciones muy grandes tenemos que utilizar sistemas de cache externos como el caso de Redis, pero este tiene un problema, y es que no utiliza los multiples núcleos del procesador; para solucionar esto apareció una alternativa llamada KeyDB.

Veamos a continuación algunos puntos sobre los cuales nos pueden surgir dudas, ya que KeyDB no es muy conocido, aunque su popularidad cada vez crece más, y es que ya tiene 7K estrellas en GitHub frente a las 59K de Redis, lo cual indica que es un proyecto ya con cierto recorrido y que está ganando popularidad.

¿Que es KeyDB?

KeyDB es un fork de Redis, es decir, se "copió" Redis y se empezó a modificar con otro objetivo distinto. Comenzó como un experimento para añadir soporte multi-hilo en Redis y ha terminado siendo un éxito con más de 3 millones de descargar y siendo "adoptado" por SnapChat.

Se han centrado en añadir soporte multi-hilo y una vez logrado a mejorar algunas partes del código haciéndolas más fáciles de mantener u optimizándolas, y siempre que han podido han intentado proporcionar las mejoras a Redis.

La mejor que han logrado es increíble, a continuación, os dejo un video donde se ve que Redis tarda 40 segundos en procesar 4 millones operaciones y KeyDB apenas 4 segundos consiguiendo ejecutar un millón por segundo.

¿Mejorará el rendimiento de mi proyecto con KeyDB?

Depende muchísimo del proyecto, en la gran mayoría de las ocasiones con Redis y una CDN bien configurada será suficiente, pero en algunos proyectos KeyDB puede mejorar el rendimiento, esos proyectos son los que soportan muchísimo tráfico (miles de consultas por segundo) y Redis actúa como un cuello de botella.

Otro factor importante para tener en cuenta es el sistema donde esté alojado KeyDB, si lo ponemos en un sistema con un procesador de un solo nucleo/hilo no notaremos ninguna mejora ya que no aprovecharemos la mayor característica de KeyDB y es su soporte multi-hilo el cual le permite poder realizar multiples operaciones simultaneas.

¿Puedo reemplazar Redis con KeyDB sin problemas?

KeyDB asegura ser 100% API compatible con Redis, que quiere decir esto, pues que el código que usemos para conectarnos a Redis funcionará exactamente igual y no tendremos que modificar nada si cambiamos a KeyDB.

En el caso de Drupal, para poder conectarlo a Redis se utiliza el módulo de la comunidad, esa misma extension podemos usarla para conectar Drupal a KeyDB

¿Como puedo comenzar a usar KeyDB?

Podéis mirar su documentación sobre como instalarlo si queréis ponerlo en alguno de vuestros proyectos, aunque si utilizáis Docker existe una imagen oficial la cual podéis usar, si ya disponéis de Redis en un Docker compose o una imagen personalizada, simplemente reemplazar la imagen de Redis por la de KeyDB y funcionará, no necesitareis cambiar puertos, volúmenes ni nada extraño ya que es 100% compatible.

Si queréis saber cómo configurar Redis en Drupal y por tanto KeyDB, podéis hacerlo siguiente este extenso artículo donde además se explican algunas mejoras.

Comparte este artículo:
Publicado por Borja
Image

Me metí en la aventura de Drupal con la versión 6, y aquí estoy, 10 años después, escribiendo articulos y haciendo videos sobre Drupal, quien me lo iba a decir. Aunque he probado otros framworks y cms, me quedo con Drupal de lejos, pero Symfony y Django estan entre mis favoritos. Aficionado a la montaña, la bicicleta, y el comer, de eso que no falte.