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.

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"

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!