Redis es un almacén de clave-valor en memoria gratuito y de código abierto que admite diferentes tipos de estructuras de datos. Puede usarlo como base de datos, caché, intermediario de mensajes y cola. Se utiliza para construir aplicaciones web escalables y de alto rendimiento. Admite una amplia gama de lenguajes de programación como Java, PHP, C, Perl, Python, C#, Lua, Go y muchos más. Es multiplataforma y funciona en la mayoría de los sistemas operativos basados en Unix, incluidos Linux, *BSD y OS X.
En este tutorial, explicaremos cómo instalar Redis en el servidor CentOS 8.
Requisitos
- Un servidor que ejecuta CentOS 8.
- Se configura una contraseña de root en el servidor.
Instalar servidor Redis
De forma predeterminada, el paquete Redis está disponible en el repositorio predeterminado de CentOS 8. Puede instalarlo ejecutando el siguiente comando:
dnf install redis -y
Después de instalar el servidor Redis, inicie el servicio Redis y habilítelo para que se inicie al reiniciar el sistema con el siguiente comando:
systemctl start redis
systemctl enable redis
También puede verificar el estado del servidor Redis con el siguiente comando:
systemctl status redis
Deberías obtener el siguiente resultado:
Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d ??limit.conf Active: active (running) since Tue 2020-09-15 04:52:54 EDT; 6s ago Main PID: 3076 (redis-server) Tasks: 4 (limit: 12527) Memory: 6.6M CGroup: /system.slice/redis.service ??3076 /usr/bin/redis-server 127.0.0.1:6379 Sep 15 04:52:54 centos8 systemd[1]: Starting Redis persistent key-value database... Sep 15 04:52:54 centos8 systemd[1]: Started Redis persistent key-value database.
De forma predeterminada, Redis escucha en el puerto 6379. Puede verificarlo con el siguiente comando:
ss -ant | grep 6379
Deberías obtener el siguiente resultado:
LISTEN 0 128 127.0.0.1:6379 0.0.0.0:*
A continuación, pruebe la conectividad de Redis con el siguiente comando:
redis-cli
Debería ver el siguiente resultado:
127.0.0.1:6379>
Ahora, ejecute el siguiente comando para verificar la conectividad:
127.0.0.1:6379> ping
Debería ver el siguiente resultado:
PONG
Configurar caché de Redis
A continuación, deberá configurar Redis como servidor de almacenamiento en caché. Puede hacerlo editando el archivo de configuración de Redis:
nano /etc/redis.conf
Agregue las siguientes líneas al final del archivo:
maxmemory 128mb maxmemory-policy allkeys-lru
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Redis con el siguiente comando:
systemctl restart redis
Servidor Redis seguro
De forma predeterminada, redis-cli le permite ejecutar cualquier comando dentro del shell de Raedis. Por lo tanto, es una buena idea asegurar un shell de Redis con la contraseña. Puede habilitar la autenticación de contraseña editando el archivo /etc/redis.conf:
nano /etc/redis.conf
Busque la siguiente línea:
# requirepass foobared
Y reemplácelo con la siguiente línea:
requirepass A	D3Fs4%#df
Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Redis para aplicar los cambios de configuración:
systemctl restart redis
Ahora, conéctese a Redis con el siguiente comando:
redis-cli
Una vez conectado, ejecute el siguiente comando:
127.0.0.1:6379> INFO server
Obtendrá el siguiente error porque no se autentica.
NOAUTH Authentication required.
Ahora, ejecute el siguiente comando para autenticarse con la contraseña especificada en el archivo de configuración de Redis:
127.0.0.1:6379> AUTH A	D3Fs4%#df
Debería ver el siguiente resultado:
OK
Ahora, ejecuta el siguiente comando:
127.0.0.1:6379> INFO server
Deberías obtener el siguiente resultado:
# Server redis_version:5.0.3 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:28849dbea6f07cc8 redis_mode:standalone os:Linux 4.18.0-193.14.2.el8_2.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:8.3.1 process_id:3176 run_id:2bf42acb9a0c0f251220c9bf5d66982b1c0b1d87 tcp_port:6379 uptime_in_seconds:41 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:6324712 executable:/usr/bin/redis-server config_file:/etc/redis.conf
Cuando haya terminado, puede continuar con el siguiente paso.
Renombrar comando peligroso
También se recomienda cambiar el nombre de algunos comandos peligrosos dentro del shell de Redis. Uno de los comandos peligrosos es "config". Se utiliza para recuperar la contraseña de Redis.
Veamos cómo recuperar la contraseña de Redis con el comando "config".
Primero, conéctese a Redis con el siguiente comando:
redis-cli
Una vez conectado, autentique Redis con el siguiente comando:
127.0.0.1:6379> AUTH A	D3Fs4%#df
A continuación, recupere la contraseña de Redis con el siguiente comando:
127.0.0.1:6379> config get requirepass
Debería obtener la contraseña de Redis en el siguiente resultado:
1) "requirepass" 2) "A	D3Fs4%#df"
Puede cambiar el nombre del comando "config" editando el archivo /etc/redis.conf:
nano /etc/redis.conf
Busque la siguiente línea:
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
Y reemplácelo con la siguiente línea:
rename-command CONFIG hitredis
Guarde y cierre el archivo. Luego, reinicie el servicio Redis con el siguiente comando:
systemctl restart redis
Ahora, conecte y autentique Redis con el siguiente comando:
redis-cli
127.0.0.1:6379> AUTH A	D3Fs4%#df
Ahora, recupere la contraseña de Redis con el comando "config":
127.0.0.1:6379> config get requirepass
Debería recibir el siguiente error:
(error) ERR unknown command `config`, with args beginning with: `get`, `requirepass`,
Ahora, ejecute el comando renombrado como se muestra a continuación:
127.0.0.1:6379> hitredis get requirepass
Debería obtener su contraseña de Redis en el siguiente resultado:
1) "requirepass" 2) "A	D3Fs4%#df"
Conclusión
¡Felicidades! Ha instalado y asegurado con éxito el servidor Redis en CentOS 8. Ahora puede alojar su aplicación y configurarla para usar el caché de Redis. Siéntase libre de preguntarme si tiene alguna pregunta.