Redis 5.0.5 Instalación / Actualización / Upgrade
Multimedia
Fácilmente instalado y actualizado Redis en el servidor
Parte Ⅰ – Sólo necesario para la actualización
- Apague Redis y cierre de forma segura el almacenamiento de datos
Bash
root@server:~# redis-cli 127.0.0.1:6379> SHUTDOWN SAVE (1.89s) not connected> quit root@server:~#
- Detener instancia Redis: ~# systemctl stop redis_6379 o ~# service redis_6379 stop
- Copia de seguridad de la configuración /etc/redis/6379.conf y los datos actuales de Redis /var/lib/redis/6379/appendonly.aof y /var/lib/redis/6379/dump.rdb
Parte Ⅱ – Instalación / Actualización
Debian + Ubuntu
Bash
~# apt-get install build-essential
~# apt-get install tcl wget
CentOS
Bash
~# yum groupinstall 'Development Tools'
~# yum install tcl wget
Debian + Ubuntu + CentOS
Bash
~# wget http://download.redis.io/redis-stable.tar.gz
~# tar xvzf redis-stable.tar.gz
~# cd redis-stable/
~/redis-stable# make distclean
~/redis-stable# make
~/redis-stable# make test
...\o/ All tests passed without errors!...
~/redis-stable# make install
~/redis-stable# cd
~# cd utils/
~/utils# ./install_server.sh
Selected config:
Port : 6379
Config file : /etc/redis/6379.conf
Log file : /var/log/redis_6379.log
Data dir : /var/lib/redis/6379
Executable : /usr/local/bin/redis-server
Cli Executable : /usr/local/bin/redis-cli
Is this ok? Then press ENTER to go on or Ctrl-C to abort.
Copied /tmp/6379.conf => /etc/init.d/redis_6379
Installing service...
Success!
Starting Redis server...
Installation successful!
root@server:~/redis-stable/utils# cd
~/utils# cd
~# systemctl start redis_6379
~# systemctl status redis_6379
Abrir la configuración de Redis – Testar Redis con Ping Pong
Bash
~# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
Mostrar la versión de Redis
Bash
~# redis-server --version
Redis server v=5.0.5 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=346d28814696cac3
~#
Parte Ⅲ – Configurar servidor para Redis
Opción A: Configuraciones para overcommit_memory y somaxconn
Bash
~# echo never > /sys/kernel/mm/transparent_hugepage/enabled
~# echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf && sysctl -p
~# echo "net.core.somaxconn = 65535" >> /etc/sysctl.conf && sysctl -p
Comprobar:
~# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
~# cat /proc/sys/net/core/somaxconn
65535
Opción B: Configuraciones para transparent_hugepage, overcommit_memory y somaxconn
Bash
Instalar el paquete sysfsutils:
~# apt install sysfsutils
e ingrese las siguientes 3 líneas en el archivo /etc/sysfs.conf (después del texto):
kernel/mm/transparent_hugepage/enabled = never
vm.overcommit_memory = 1
net.core.somaxconn = 65535
Comprobar:
~# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
~# sysctl -a | grep hugepage
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
sysctl: reading key "net.ipv6.conf.eth1.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
vm.hugepages_treat_as_movable = 0
vm.nr_hugepages = 0
vm.nr_hugepages_mempolicy = 0
vm.nr_overcommit_hugepages = 0
~# cat /proc/sys/net/core/somaxconn
65535
(Estándar = 128)
~# sysctl -a | grep commit
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.eth0.stable_secret"
sysctl: reading key "net.ipv6.conf.eth1.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
vm.nr_overcommit_hugepages = 0
vm.overcommit_kbytes = 0
vm.overcommit_memory = 1
vm.overcommit_ratio = 50
Todos los ajustes modificados se muestran aquí en el archivo de configuración de Redis /etc/redis/6379.conf. Los dos primeros valores son causados por la siguiente configuración para system.d.
Bash
daemonize yes
supervised systemd
logfile /var/log/redis_6379.log
dir /var/lib/redis/6379
maxclients 10000
maxmemory 15GB (Server hat 32G Memory)
maxmemory-policy volatile-ttl
maxmemory-samples 5
appendonly yes
Punto culminante – La gran final – Configurar Redis para system.d
Crearemos el archivo redis.service en /lib/systemd/system/redis.service con el siguiente contenido:
Bash
[Unit]
Description=Redis In-Memory Data Store
After=network.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
User=redis
Group=redis
RuntimeDirectory=redis
RuntimeDirectoryMode=0755
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always
[Install]
WantedBy=multi-user.target
Por lo tanto, los dos valores siguientes también deben adaptarse en la configuración de Redis /etc/redis/6379.conf.
Bash
daemonize yes
pidfile /var/run/redis/redis.pid
Entonces definitivamente recargar el demonio (reload) y reinicie Redis.
Código
~# systemctl daemon-reload
~# systemctl restart redis_6379