Redis 5.0.5 Instalação / Atualização / Upgrade
Multimedia
Facilmente instalado e atualizado Redis no servidor
Parte Ⅰ – Somente necessário para a atualização
- Encerre o Redis e encerre com segurança o armazenamento de dados
Bash
root@server:~# redis-cli 127.0.0.1:6379> SHUTDOWN SAVE (1.89s) not connected> quit root@server:~#
- Parar instância Redis: ~# systemctl stop redis_6379 ou ~# service redis_6379 stop
- Faça backup da configuração /etc/redis/6379.conf e dos dados atuais do Redis /var/lib/redis/6379/appendonly.aof e /var/lib/redis/6379/dump.rdb
Parte Ⅱ – Instalação / Atualização
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 a configuração Redis – Testar Redis com Ping Pong
Bash
~# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
Mostrar a versão 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
Opção A: Configurações para overcommit_memory e 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
Verificar:
~# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
~# cat /proc/sys/net/core/somaxconn
65535
Opção B: Configurações para transparent_hugepage, overcommit_memory e somaxconn
Bash
Instalar o pacote sysfsutils:
~# apt install sysfsutils
e insira as 3 linhas seguintes no arquivo /etc/sysfs.conf (depois do texto):
kernel/mm/transparent_hugepage/enabled = never
vm.overcommit_memory = 1
net.core.somaxconn = 65535
Verificar:
~# 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
(Padrão = 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
Todas as configurações alteradas são exibidas aqui no arquivo de configuração do Redis /etc/redis/6379.conf. Os dois primeiros valores são causados pela seguinte configuração 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
Ponto alto – A grande final – Configure o Redis para system.d
Vamos criar o arquivo redis.service em /lib/systemd/system/redis.service com o seguinte conteúdo:
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
Assim, os dois valores seguintes também devem ser adaptados na configuração do Redis /etc/redis/6379.conf.
Bash
daemonize yes
pidfile /var/run/redis/redis.pid
Então, definitivamente, recarregar o daemon (reload) e reinicie o Redis.
Código
~# systemctl daemon-reload
~# systemctl restart redis_6379