Redis 5.0.5 Instalacja / Aktualizacja / Upgrade
Multimedia
Zainstaluj i zaktualizuj Redis - to proste
Część Ⅰ – Konieczna tylko do aktualizacji
- Zamknij Redis i bezpiecznie zakończ przechowywanie danych
Bash
root@server:~# redis-cli 127.0.0.1:6379> SHUTDOWN SAVE (1.89s) not connected> quit root@server:~#
- Zatrzymaj instancję Redis: ~# systemctl stop redis_6379 oder ~# service redis_6379 stop
- Kopia zapasowa bieżącej konfiguracji Redis /etc/redis/6379.conf i danych /var/lib/redis/6379/appendonly.aof i /var/lib/redis/6379/dump.rdb
Część Ⅱ – Instalacja / Aktualizacja
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
Otwórz konfigurację Redis – Przetestuj Redis za pomocą
Bash
~# redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379>
Pokaż wersję Redis
Bash
~# redis-server --version
Redis server v=5.0.5 sha=00000000:0 malloc=jemalloc-5.1.0 bits=64 build=346d28814696cac3
~#
Część Ⅲ – Skonfiguruj serwer dla Redis
Możliwość A: Ustawienia dla overcommit_memory i 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
Überprüfen:
~# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
~# cat /proc/sys/net/core/somaxconn
65535
Możliwość B: Ustawienia dla transparent_hugepage, overcommit_memory i somaxconn
Bash
Das Paket sysfsutils installieren:
~# apt install sysfsutils
und die folgenden 3 Zeilen in die Datei /etc/sysfs.conf eintragen (nach dem Text):
kernel/mm/transparent_hugepage/enabled = never
vm.overcommit_memory = 1
net.core.somaxconn = 65535
Überprüfen:
~# 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
(Standard = 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
Wszystkie zmienione ustawienia są pokazane tutaj w pliku konfiguracyjnym Redis /etc/redis/6379.conf. Pierwsze dwie wartości są określone przez następującą konfigurację dla 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
Najważniejsze – Wielki finał – Skonfiguruj Redis dla system.d
Plik redis.service tworzymy w /lib/systemd/system/redis.service o następującej treści:
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
W związku z tym należy również dostosować następujące dwie wartości w konfiguracji Redis /etc/redis/6379.conf.
Bash
daemonize yes
pidfile /var/run/redis/redis.pid
Następnie ponownie załaduj daemon (reload) i uruchom ponownie Redis.
Code
~# systemctl daemon-reload
~# systemctl restart redis_6379