Redis es un acrónimo de R emoción d servidor de iccionario. Es una base de datos / almacén de clave-valor de código abierto, en memoria y persistente que almacena datos como pares de clave-valor y también se duplica como un intermediario de mensajes. Redis admite una amplia gama de estructuras de datos, incluidos conjuntos , listas , hashes , cadenas , HyperLogLogs y muchos más.
¿Qué es un par clave-valor?
Un par clave-valor es un conjunto o par de dos elementos vinculados. Considere lo siguiente:
coche =Mercedes
En este caso, el coche es la clave y Mercedes es el valor. En una base de datos de Redis, esta información se puede escribir con la sintaxis:
SET "clave1" "valor1"
Nuestro ejemplo se traducirá a:
SET “coche” “Mercedes”
Beneficios de usar Redis
- A diferencia de las bases de datos relacionales como MySQL, Redis es una base de datos NoSQL que almacena datos como un par de valores clave. Esto lo hace simple y flexible ya que no hay necesidad de crear tablas, columnas y filas asociadas con bases de datos relacionales. Alimentar datos a Redis es simple y directo.
- Uno de los usos aparentes de Redis es su uso como sistema de almacenamiento en caché. Mientras lo hace, también ofrece persistencia a los datos que se escriben en él.
- La arquitectura en memoria de Redis hace que sea súper rápido en almacenamiento y recuperación de datos.
- El sistema de caché redis es bastante robusto y tiene la capacidad de resistir fallas e interrupciones.
- Redis se envía con una función de replicación maestro-esclavo. Cuando se realizan cambios en el nodo maestro, se replican automáticamente en los nodos esclavos para garantizar una alta disponibilidad.
- Redis tiene la capacidad de almacenar grandes pares de clave y valor de hasta 512 MB.
- Dado su pequeño tamaño, Redis se puede instalar en dispositivos IoT como Raspberry Pi y Arduino para admitir aplicaciones IoT.
- Redis es una base de datos multiplataforma y un sistema de almacenamiento en caché que se puede instalar en Windows, Mac y Linux.
Casos de uso de Redis
Con los beneficios descritos anteriormente, Redis se puede utilizar de las siguientes maneras:
- Análisis de datos estadísticos en tiempo real.
- Se utiliza para la integración con servicios de AWS, como instancias de CloudTrail, CloudWatch y Amazon EC2.
- Puede ser una excelente opción para almacenar en caché sitios web.
- Las plataformas de redes sociales como Instagram usan Redis para almacenar imágenes
- Redis admite una amplia variedad de tipos de datos, como hiperloglogs, hash y datos geoespaciales.
Ahora veamos cómo puede instalar Redis en CentOS 8/RHEL 8
Paso 1:actualizar los repositorios del sistema
Inicie sesión en su sistema CentOS 8/RHEL 8 y actualice los paquetes y repositorios del sistema con el comando:
$ sudo dnf update -y
Paso 2:Instalar Redis con dnf
La versión 5.0.x de Redis ahora está incluida en el repositorio de AppStream de CentOS 8 y su instalación es pan comido. Simplemente ejecute el comando:
$ sudo dnf install redis -y
Una vez instalado, puede verificar la versión de Redis instalada ejecutando el comando:
[[email protected] ~]$ rpm -q redis redis-5.0.3-1.module_el8.0.0+6+ab019c03.x86_64 [[email protected] ~]$
De la salida, está claro que hemos instalado la versión 5.0.3 de Redis. Para obtener más información sobre Redis, como la versión, la arquitectura, la licencia y una breve descripción, ejecute el comando:
$ rpm -qi redis
Para iniciar y habilitar el servicio Redis, ejecute los siguientes comandos systemctl:
$ sudo systemctl start redis $ sudo systemctl enable redis
Una vez iniciado, puede verificar su estado ejecutando
$ sudo systemctl status redis
De forma predeterminada, Redis se ejecuta en el puerto 6379. Puede confirmarlo ejecutando el comando netstat:
$ sudo netstat -pnltu | grep redis
Paso 3:Configurar Redis para acceso remoto
La instalación predeterminada solo permite conexiones desde el servidor localhost o Redis y bloquea cualquier conexión externa. Vamos a configurar Redis para conexión remota desde una máquina cliente.
Acceda al archivo de configuración como se muestra:
$ sudo vim /etc/redis.conf
Localice el parámetro de vinculación y reemplace 127.0.0.1 con 0.0.0.0
bind 0.0.0.0
Guarde y cierre el archivo de configuración. Para que los cambios surtan efecto, reinicie Redis.
$ sudo systemctl restart redis
Para iniciar sesión en el shell de Redis, ejecute el comando:
$ redis-cli
Intente hacer ping al servidor redis. Debería obtener una respuesta "PONG" como se muestra.
[[email protected] ~]$ redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
Paso 4:Protección del servidor Redis
Nuestra configuración de Redis permite que cualquier persona acceda al shell y las bases de datos sin autenticación, lo que representa un grave riesgo de seguridad. Para establecer una contraseña, regrese al archivo de configuración /etc/redis.conf
Ubique y descomente el parámetro requirepass y especifique una contraseña segura como se muestra
Reinicie Redis y regrese al servidor.
$ sudo systemctl restart redis
Si intenta ejecutar cualquier comando antes de autenticarse, se mostrará el error que se muestra a continuación
[[email protected] ~]$ redis-cli 127.0.0.1:6379> ping (error) NOAUTH Authentication required. 127.0.0.1:6379>
Para autenticarse, escriba 'auth' seguido de la contraseña establecida. En nuestro caso será:
autenticación [correo electrónico protegido]
A partir de entonces, puede continuar ejecutando sus comandos.
[[email protected] ~]$ redis-cli 127.0.0.1:6379> auth [email protected] OK 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
Para salir de redis-cli, escriba exit
Paso 5:Configuración del cortafuegos para redis
Por último, debemos configurar el firewall para permitir conexiones remotas al servidor Redis. Para hacer esto, necesitamos abrir el puerto redis que es 6379.
Por lo tanto, ejecute los siguientes comandos.
$ sudo firewall-cmd --add-port=6379/tcp --permanent $ sudo firewall-cmd --reload
Para acceder a Redis de forma remota, utilice la siguiente sintaxis.
$ redis-cli -h DIRECCIÓN_IP_REDIS
A continuación, autentíquese y presione 'ENTRAR '
La dirección IP de nuestro servidor Redis es 192.168.1.5 El comando desde otra PC cliente será
$ redis-cli -h 192.168.1.5
A continuación, proporcione la contraseña y presione 'ENTRAR'
autenticación [correo electrónico protegido]
Arriba confirma que Redis Server se instaló correctamente, pasemos a la siguiente sección.
Cómo realizar Redis Benchmark
Redis viene con una herramienta integrada conocida como redis-benchmark que brinda información sobre las estadísticas de rendimiento del sistema, como la tasa de transferencia de datos, el rendimiento y la latencia, por mencionar algunas.
Algunas de las opciones de comando que puede usar con Redis incluyen
- -n: Esto define el número de solicitudes a realizar. El valor predeterminado es 100000
- -c: Define el número de conexiones paralelas que se simularán. Por defecto, este valor es 50
- -p: Este es el puerto de Redis que, de forma predeterminada, es 6379
- -h: Se utiliza para definir el host. De forma predeterminada, este valor se establece en localhost (127.0.0.1)
- -a: Se utiliza para solicitar una contraseña si el servidor necesita autenticación
- -q: Significa modo silencioso. Muestra el promedio de solicitudes realizadas por segundo
- -t: Se utiliza para ejecutar una combinación de pruebas
- -P: Se utiliza para canalizar para mejorar el rendimiento.
- -d:especifica el tamaño de los datos en bytes para los valores GET y SET. De forma predeterminada, está configurado en 3 bytes
Ejemplos:
Para confirmar el promedio no. de solicitudes que su servidor Redis puede manejar, ejecute el comando:
$ redis-benchmark -q
Presta atención a la última línea. Indica que Redis puede manejar 23046 solicitudes por segundo.
Además, puede usar la opción -t para ejecutar un subconjunto de comandos. En el ejemplo a continuación, lo estamos usando para mostrar el número promedio. solicitudes de comandos SET y GET.
$ redis-benchmark -t set,get -q
[[email protected] ~]$ redis-benchmark -t set,get -q SET: 26102.84 requests per second GET: 25555.84 requests per second [[email protected] ~]$
A partir de la salida, podemos ver que tenemos 26102,84 solicitudes por segundo para el comando SET y 25555,84 solicitudes para el comando GET.
De forma predeterminada, el número de conexiones paralelas es 50 . Para especificar un número diferente de conexiones de clientes, digamos 1000, use el parámetro -c como se muestra:
[[email protected] ~]$ redis-benchmark -t set,get -q -c 1000 SET: 21997.36 requests per second GET: 22119.00 requests per second [[email protected] ~]$
Como habrás podido observar, el número de solicitudes por segundo se ha reducido debido al aumento del número de conexiones paralelas de 50 a 1000.
Avancemos y establezcamos el número de solicitudes en 1000000
[[email protected] ~]$ redis-benchmark -t set,get -q -c 1000 -n 1000000 SET: 16660.28 requests per second GET: 21550.79 requests per second [[email protected] ~]$
Una vez más, los valores de SET y GET disminuyen debido al aumento en el número de solicitudes desde el valor predeterminado de 100 000 a 1 000 000.
Y esto concluye nuestro tema de hoy. Hemos instalado con éxito el servidor Redis en CentOS 8 y logramos realizar algunas pruebas comparativas en nuestro servidor. Le invitamos a compartir sus opiniones y comentarios.