Lanzamiento de la base de datos Redis 7.0.

Se ha publicado la versión 7.0 de la base de datos NoSQL Redis. Redis ofrece funciones para el almacenamiento de datos en formato clave/valor, ampliadas con el soporte para formatos de datos estructurados, como listas, hashes y conjuntos, así como la posibilidad de ejecutar scripts procesadores en Lua del lado del servidor. El código del proyecto se distribuye bajo la licencia BSD. Módulos adicionales que ofrecen capacidades mejoradas para usuarios empresariales, como RediSearch, RedisGraph, RedisJSON, RedisML y RedisBloom, se han distribuido desde 2019 bajo la licencia propietaria RSAL. El desarrollo de variantes abiertas de estos módulos bajo la licencia AGPLv3 ha sido intentado por el proyecto GoodFORM, que últimamente se encuentra en estancamiento.

A diferencia de sistemas de almacenamiento en memoria, como Memcached, Redis asegura el almacenamiento persistente de datos en disco y garantiza la integridad de la base de datos en caso de fallos. Los códigos fuente del proyecto se distribuyen bajo la licencia BSD. Las bibliotecas cliente están disponibles para la mayoría de los lenguajes populares, incluidos Perl, Python, PHP, Java, Ruby y Tcl. Redis soporta transacciones que permiten ejecutar un conjunto de comandos en un solo paso, garantizando la coherencia y consistencia (los comandos de otras solicitudes no pueden entremezclarse) de la ejecución del conjunto de comandos dado, permitiendo revertir cambios en caso de problemas. Todos los datos se almacenan en caché en la memoria RAM.

Para la gestión de datos, se proporcionan comandos como incremento/decremento, operaciones estándar sobre listas y conjuntos (unión, intersección), renombramiento de claves, múltiples selecciones y funciones de ordenación. Se admiten dos modos de almacenamiento: la sincronización periódica de datos en disco y el mantenimiento en el disco de un registro de cambios. En el segundo caso, se garantiza la completa preservación de todos los cambios. Es posible organizar la replicación de datos master-slave en varios servidores, llevada a cabo en modo no bloqueante. También está disponible el modo de mensajería de "publicación/suscripción", en el que se crea un canal cuyas mensajes se distribuyen a los clientes por suscripción.

Cambios clave en Redis 7.0:

  • Se ha añadido soporte para funciones ejecutadas del lado del servidor servidores. A diferencia de los scripts anteriormente soportados en Lua, las funciones no están vinculadas a la aplicación y están destinadas a implementar lógica adicional que amplía las capacidades del servidor. Las funciones se procesan de manera inseparable con los datos y están ligadas a la base de datos, no a la aplicación, incluyendo la replicación y el almacenamiento en almacenamiento persistente.
  • Se ha propuesto una segunda edición de ACL, que permite gestionar el acceso a los datos en función de las claves y permite definir diferentes conjuntos de reglas de acceso a los comandos con la posibilidad de vincular múltiples selectores (conjuntos de privilegios) a cada usuario. Cada clave puede identificarse con ciertos privilegios, por ejemplo, se puede restringir el acceso solo a lectura o escritura de un subconjunto determinado de claves.
  • Se ha proporcionado una implementación fragmentada (sharded) funcional en clúster de la paradoja de publicación-suscripción (Publish-Subscribe), en la que el mensaje se envía a un nodo específico al que está vinculado el canal de mensajes, y luego este mensaje se reenvía a otros nodos que pertenecen a la sección (shard). Los clientes pueden recibir mensajes suscribiéndose a un canal, conectándose tanto al nodo principal como a los nodos secundarios de la sección. La gestión se realiza mediante los comandos SSUBSCRIBE, SUNSUBSCRIBE y SPUBLISH.
  • Se ha añadido soporte para el manejo de subcomandos en la mayoría de los contextos.
  • Se han añadido nuevos comandos:
    • ZMPOP, BZMPOP.
    • LMPOP, BLMPOP.
    • SINTERCARD, ZINTERCARD.
    • SPUBLISH, SSUBSCRIBE, SUNSUBSCRIBE, PUBSUB SHARDCHANNELS/SHARDNUMSUB.
    • EXPIRETIME, PEXPIRETIME.
    • EVAL_RO, EVALSHA_RO, SORT_RO.
    • FUNCTION *, FCALL, FCALL_RO.
    • COMMAND DOCS, COMMAND LIST.
    • LATENCY HISTOGRAM.
    • CLUSTER SHARDS, CLUSTER LINKS, CLUSTER DELSLOTSRANGE, CLUSTER ADDSLOTSRANGE.
    • CLIENT NO-EVICT.
    • ACL DRYRUN.
  • Se ha proporcionado la posibilidad de procesar varias configuraciones en una sola llamada CONFIG SET/GET.
  • Se han añadido opciones a la utilidad redis-cli: «—json», «-2», «—scan», «—functions-rdb».
  • Por defecto, se ha desactivado el acceso a los clientes a configuraciones y comandos que afectan la seguridad (por ejemplo, se han desactivado los comandos DEBUG y MODULE, y se ha prohibido modificar configuraciones con la bandera PROTECTED_CONFIG). En redis-cli, se ha detenido la salida a un archivo con el historial de comandos que contienen datos confidenciales.
  • Se han realizado una gran cantidad de optimizaciones destinadas a aumentar el rendimiento y reducir el consumo de memoria. Por ejemplo, se ha reducido significativamente el consumo de memoria al habilitar el modo clúster, al realizar operaciones de copia sobre escritura y al trabajar con hashes y claves de zset. Se ha mejorado la lógica de escritura de datos en disco (llamada fsync). Se ha reducido el número de paquetes de red y llamadas a funciones del sistema al enviar respuestas al cliente. Se ha aumentado la eficiencia de la replicación.
  • Se ha corregido la vulnerabilidad CVE-2022-24735 en el entorno para la ejecución de scripts Lua, lo que permite la inyección de código Lua propio y su ejecución en el contexto de otro usuario, incluyendo aquellos con privilegios más altos.
  • Se ha corregido la vulnerabilidad CVE-2022-24736, que permite el cierre inesperado del proceso redis-server debido a la desreferenciación de un puntero nulo. El ataque se lleva a cabo mediante la carga de scripts Lua específicamente diseñados.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster