LINUX

Cómo instalar Redis Server en CentOS 7

Hola a todos, hoy Redis es el tema de nuestro artículo, lo vamos a instalar en CentOS 7. Construye archivos de fuentes, instala los binarios, crea e instala archivos. Después de instalar sus componentes, estableceremos su configuración así como algunos parámetros del sistema operativo para hacerlo más confiable y rápido.

Runnins Redis
Servidor Redis

Redis es un almacén de datos multiplataforma de código abierto escrito en ANSI C, que utiliza conjuntos de datos directamente desde la memoria para lograr un rendimiento extremadamente alto. Es compatible con varios lenguajes de programación, incluidos Lua, C, Java, Python, Perl, PHP y muchos otros. Se basa en la simplicidad, alrededor de 30k líneas de código que hacen «pocas» cosas, pero las hacen bien. A pesar de que trabaje con la memoria, la persistencia puede existir y tiene un soporte bastante razonable para alta disponibilidad y agrupación, lo que ayuda a mantener sus datos seguros.

Construyendo Redis

No hay un paquete RPM oficial disponible, necesitamos compilarlo a partir de las fuentes, para hacer esto necesitará instalar Make y GCC.

Instale GNU Compiler Collection y Make con yum si aún no está instalado

yum install gcc make

Descarga el tarball de página de descarga de redis.

curl http://download.redis.io/releases/redis-3.0.4.tar.gz -o redis-3.0.4.tar.gz

Extrae el contenido del tarball

tar zxvf redis-3.0.4.tar.gz

Entra en Redis el directorio que hemos extraído

cd redis-3.0.4

Utilice Make para crear los archivos fuente

make

Instalar en pc

Entrar en el directorio src

cd src

Copie el servidor y el cliente de Redis en / usr / local / bin

cp redis-server redis-cli /usr/local/bin

También es bueno copiar centinela, comparar y verificar.

cp redis-sentinel redis-benchmark redis-check-aof redis-check-dump /usr/local/bin

Hacer directorio de configuración de Redis

mkdir /etc/redis

Cree un directorio de trabajo y de datos en / var / lib / redis

mkdir -p /var/lib/redis/6379

Parámetros del sistema

Para que Redis funcione correctamente, debe configurar algunas opciones del kernel

Establezca vm.overcommit_memory en 1, lo que significa que siempre, esto evitará que los datos se trunquen, eche un vistazo aquí para más.

sysctl -w vm.overcommit_memory=1

Cambie el máximo de conexiones atrasados ​​un valor más alto que el valor en la opción tcp-backlog de redis.conf, que por defecto es 511. Puede encontrar más sobre «tunning» de redes IP basadas en sysctl en kernel.org sitio web.

sysctl -w net.core.somaxconn=512.

Deshabilite la compatibilidad con páginas grandes transparentes, que se sabe que causa problemas de latencia y acceso a la memoria con Redis.

echo never > /sys/kernel/mm/transparent_hugepage/enabled

redis.conf

Redis.conf es el archivo de configuración de Redis, sin embargo, verá el archivo llamado 6379.conf aquí, donde el número es el mismo que el puerto de red que está escuchando. Se recomienda este nombre si va a ejecutar más de una instancia de Redis.

Copie la muestra redis.conf a /etc/redis/6379.conf.

cp redis.conf /etc/redis/6379.conf

Ahora edite el archivo y establezca algunos de sus parámetros.

vi /etc/redis/6379.conf

demonizar

Establezca daemonize en no, systemd necesita que esté en primer plano, de lo contrario, Redis morirá repentinamente.

daemonize no

pidfile

Establezca el archivo pid en redis_6379.pid en / var / run.

pidfile /var/run/redis_6379.pid

Puerto

Cambie el puerto de red si no va a utilizar el puerto predeterminado.

port 6379

nivel de registro

Establezca su nivel de registro.

loglevel notice

archivo de registro

Establezca el archivo de registro en /var/log/redis_6379.log

logfile /var/log/redis_6379.log

dir

Establezca el directorio en / var / lib / redis / 6379

dir /var/lib/redis/6379

Seguridad

A continuación, se muestran algunas acciones que puede realizar para hacer cumplir la seguridad.

Sockets Unix

En muchos casos, la aplicación cliente reside en la misma máquina que el servidor, por lo que no es necesario escuchar los sockets de red. Si este es el caso, es posible que desee utilizar sockets Unix en su lugar, para esto debe configurar el Puerto opción a 0y luego habilite los sockets Unix con las siguientes opciones.

Establecer la ruta al archivo de socket

 unixsocket /tmp/redis.sock

Establecer permisos restringidos para el archivo de socket

unixsocketperm 700

Ahora, para tener acceso con redis-cli, debe usar el -s bandera apuntando al archivo de socket

redis-cli -s /tmp/redis.sock

requerir

Es posible que necesite acceso remoto, si es así, debe usar una contraseña, que será necesaria antes de cualquier operación.

requirepass "bTFBx1NYYWRMTUEyNHhsCg"

comando de cambio de nombre

Imagina el resultado del siguiente comando. Sí, volcará la configuración del servidor, por lo que debe denegar el acceso a este tipo de información siempre que sea posible.

CONFIG GET *

Para restringir, o incluso deshabilitar este y otros comandos usando el comando de cambio de nombre. Debe proporcionar un nombre de comando y un reemplazo. Para deshabilitar, configure la cadena de reemplazo en «» (en blanco), esto es más seguro ya que evitará que alguien adivine el nombre del comando.

rename-command FLUSHDB "FLUSHDB_MY_SALT_G0ES_HERE09u09u"
rename-command FLUSHALL ""
rename-command CONFIG "CONFIG_MY_S4LT_GO3S_HERE09u09u"
Acceda a Redis a través de unix con cambios de contraseña y comando
Acceso a través de sockets unix con cambios de contraseña y comando

Instantáneas

De forma predeterminada, Redis volcará periódicamente sus conjuntos de datos a dump.rdb en el directorio de datos que establecimos. Puede configurar la frecuencia con la que se actualizará el archivo rdb mediante el comando guardar, el primer parámetro es un período de tiempo en segundos y el segundo es una cantidad de cambios realizados en el archivo de datos.

Cada 15 horas si hubo al menos 1 cambio de clave

save 900 1

Cada 5 horas si hubo al menos 10 cambios de clave

save 300 10

Cada minuto si hubo al menos 10000 cambios de clave

save 60 10000

los /var/lib/redis/6379/dump.rdb El archivo contiene un volcado del conjunto de datos en la memoria desde la última vez que se guardó. Dado que crea un archivo temporal y luego reemplaza el archivo original, no hay problema de corrupción y siempre puedes copiarlo directamente sin miedo.

Comenzando en el arranque

Puede usar systemd para agregar Redis al inicio del sistema

Copie el init_script de muestra en /etc/init.d, anote también el número del puerto en el nombre del script

cp utils/redis_init_script /etc/init.d/redis_6379

Vamos a usar systemd, así que cree un archivo de unidad llamado redis_6379.service en / etc / systems / system

vi /etc/systemd/system/redis_6379.service

Ponga este contenido, pruebe man systemd.service para más detalles

[Unit]
Description=Redis on port 6379

[Service]
Type=forking
ExecStart=/etc/init.d/redis_6379 start
ExecStop=/etc/init.d/redis_6379 stop

[Install]
WantedBy=multi-user.target

Ahora agregue la sobreasignación de memoria y las opciones de acumulación máxima que hemos establecido antes al /etc/sysctl.conf expediente.

vm.overcommit_memory = 1

net.core.somaxconn=512

Para el soporte de páginas enormes transparentes, no hay una directiva sysctl, por lo que puede poner el comando al final de /etc/rc.local

echo never > /sys/kernel/mm/transparent_hugepage/enabled

Conclusión

Eso es suficiente para comenzar, con esta configuración podrá implementar el servidor Redis para muchos escenarios más simples, sin embargo, hay muchas opciones en redis.conf para entornos más complejos. En algunos casos, puede usar replicación y Centinela para proporcionar alta disponibilidad, dividir los datos entre servidores, cree un grupo de servidores. ¡Gracias por leer!

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar