El servidor de diccionario remoto, o redis para abreviar, es una base de datos en memoria de Lightning-Fast que almacena valores en pares de valor clave. Se utiliza principalmente como mecanismo de almacenamiento en caché para bases de datos como SQL y bases de datos de documentos.
Dado que Redis es una base de datos en memoria, el espacio utilizado es crítico y necesita ser monitoreado fuertemente. Una estrategia para mejorar y optimizar el rendimiento de la memoria para Redis es usar la compresión.
Por defecto, Redis no proporciona compresión para ningún dato almacenado. Por lo tanto, las técnicas de compresión se implementan en la aplicación.
Permítanos discutir algunas técnicas que puede usar para optimizar el rendimiento de la memoria en Redis.
Implementar un algoritmo de compresión
Dado que Redis no comprime los valores almacenados, debe hacerlo antes de almacenarlos. Hay varios algoritmos de compresión para comprimir cadenas antes de almacenarlas.
Tales algoritmos incluyen:
Use nombres de claves más cortos
Aunque los desarrolladores deberían favorecer los nombres más descriptivos sobre los cortos, el uso de la memoria puede dispararse rápidamente si tiene una extensa colección de claves en la base de datos.
Siempre considere usar nombres clave cortos para sus datos de valor clave para evitar esto.
Ejemplo:
Establecer este valor este_is_a_very_large_key_nameEn su lugar, puede usar el nombre de la clave:
Establecer el valor l_key_nameEsto reduce el número de caracteres de Redis para almacenar su base de datos.
Comprimir nombres de campo
Se puede decir el mismo caso anterior sobre los nombres de campo. Y nuevamente, usar un nombre de campo más corto puede guardar algunos bytes o kilobytes de su memoria.
Por lo tanto, considere usar nombres de campo cortos para sus datos de Redis.
Un ejemplo es como se muestra:
127.0.0.1: 6379> hets user_info ID 1 First Name Moes LastName K Country "Estados Unidos de América"Aquí, podemos guardar algo de memoria refactorizando los nombres de campo como:
Hets use_info id 1 fname moes lname country us EE. UUEsto comprime los nombres de campo y los valores.
Usar lista en lugar de un hash
Un hash se compone de nombres de campo y valores correspondientes. Aunque este no es un problema importante, puede ser problemático cuando miles de tipos de hash entran en juego.
Para resolver esto, puede optar por una lista como se muestra:
Hets use_info id 1 fname moes lname country us EE. UUPuede convertir el hash anterior en una lista como:
Lpush ["fname", "moes", "lname", "k", "país", "nosotros"]]Evite los guiones dinámicos de lua
Para guardar aún más memoria, evite usar scripts de lua dinámicos que hacen que el caché crezca. Cuantos más scripts cargue, más consume mucha memoria.
Habilitar la compresión de la lista
Como se mencionó, Redis no comprime ningún valor almacenado en él. Esto incluye elementos dentro de una lista. Para valores de lista cortos, esto no es un problema. Sin embargo, en listas largas, puede ser beneficioso permitir la compresión.
En el Redis.archivo conf, localizar la línea:
sudo gato/etc/redis/redis.conf | Grep List-CompressCambie el valor de la lista de compresas de lista a:
Actualice su versión de Redis
Otro paso que puede tomar para mejorar el uso de la memoria en su servidor Redis es actualizar su versión de Redis.
Al escribir este tutorial, la versión 4.0 (último) viene con las siguientes características.
Clausura
Esta guía analiza varios métodos y técnicas que puede usar para optimizar el uso de la memoria en su clúster Redis. Sin embargo, tenga en cuenta que no todas las formas están 100% garantizadas.
Gracias por leer, nos vemos en el próximo!!