Redis je bezplatné úložiště párů klíč–hodnota v paměti s otevřeným zdrojovým kódem, které podporuje různé druhy datových struktur. Můžete jej použít jako databázi, mezipaměť, zprostředkovatele zpráv a frontu. Používá se pro vytváření vysoce výkonných a škálovatelných webových aplikací. Podporuje širokou škálu programovacích jazyků, jako jsou Java, PHP, C, Perl, Python, C#, Lua, Go a mnoho dalších. Je multiplatformní a funguje ve většině operačních systémů založených na Unixu, včetně Linuxu, *BSD a OS X.
V tomto tutoriálu vysvětlíme, jak nainstalovat Redis na server CentOS 8.
Předpoklady
- Server se systémem CentOS 8.
- Na serveru je nakonfigurováno heslo uživatele root.
Instalovat Redis Server
Ve výchozím nastavení je balíček Redis dostupný ve výchozím úložišti CentOS 8. Můžete jej nainstalovat spuštěním následujícího příkazu:
dnf install redis -y
Po instalaci serveru Redis spusťte službu Redis a povolte její spuštění při restartu systému pomocí následujícího příkazu:
systemctl start redis
systemctl enable redis
Stav serveru Redis můžete také ověřit pomocí následujícího příkazu:
systemctl status redis
Měli byste získat následující výstup:
Loaded: loaded (/usr/lib/systemd/system/redis.service; disabled; vendor preset: disabled) Drop-In: /etc/systemd/system/redis.service.d ??limit.conf Active: active (running) since Tue 2020-09-15 04:52:54 EDT; 6s ago Main PID: 3076 (redis-server) Tasks: 4 (limit: 12527) Memory: 6.6M CGroup: /system.slice/redis.service ??3076 /usr/bin/redis-server 127.0.0.1:6379 Sep 15 04:52:54 centos8 systemd[1]: Starting Redis persistent key-value database... Sep 15 04:52:54 centos8 systemd[1]: Started Redis persistent key-value database.
Ve výchozím nastavení Redis naslouchá na portu 6379. Můžete to zkontrolovat pomocí následujícího příkazu:
ss -ant | grep 6379
Měli byste získat následující výstup:
LISTEN 0 128 127.0.0.1:6379 0.0.0.0:*
Dále otestujte připojení Redis pomocí následujícího příkazu:
redis-cli
Měli byste vidět následující výstup:
127.0.0.1:6379>
Nyní spusťte následující příkaz a zkontrolujte připojení:
127.0.0.1:6379> ping
Měli byste vidět následující výstup:
PONG
Konfigurovat mezipaměť Redis
Dále budete muset nakonfigurovat Redis jako mezipaměťový server. Můžete to udělat úpravou konfiguračního souboru Redis:
nano /etc/redis.conf
Na konec souboru přidejte následující řádky:
maxmemory 128mb maxmemory-policy allkeys-lru
Po dokončení uložte a zavřete soubor. Poté restartujte službu Redis pomocí následujícího příkazu:
systemctl restart redis
Zabezpečený server Redis
Ve výchozím nastavení vám redis-cli umožňuje spouštět jakýkoli příkaz v prostředí Raedis Shell. Je tedy dobré zabezpečit prostředí Redis pomocí hesla. Ověřování heslem můžete povolit úpravou souboru /etc/redis.conf:
nano /etc/redis.conf
Najděte následující řádek:
# requirepass foobared
A nahraďte jej následujícím řádkem:
requirepass A	D3Fs4%#df
Po dokončení uložte a zavřete soubor. Poté restartujte službu Redis, abyste použili změny konfigurace:
systemctl restart redis
Nyní se připojte k Redis pomocí následujícího příkazu:
redis-cli
Po připojení spusťte následující příkaz:
127.0.0.1:6379> INFO server
Protože neprovedete ověření, zobrazí se následující chyba.
NOAUTH Authentication required.
Nyní spusťte následující příkaz k ověření pomocí hesla zadaného v konfiguračním souboru Redis:
127.0.0.1:6379> AUTH A	D3Fs4%#df
Měli byste vidět následující výstup:
OK
Nyní spusťte následující příkaz:
127.0.0.1:6379> INFO server
Měli byste získat následující výstup:
# Server redis_version:5.0.3 redis_git_sha1:00000000 redis_git_dirty:0 redis_build_id:28849dbea6f07cc8 redis_mode:standalone os:Linux 4.18.0-193.14.2.el8_2.x86_64 x86_64 arch_bits:64 multiplexing_api:epoll atomicvar_api:atomic-builtin gcc_version:8.3.1 process_id:3176 run_id:2bf42acb9a0c0f251220c9bf5d66982b1c0b1d87 tcp_port:6379 uptime_in_seconds:41 uptime_in_days:0 hz:10 configured_hz:10 lru_clock:6324712 executable:/usr/bin/redis-server config_file:/etc/redis.conf
Až budete hotovi, můžete přejít k dalšímu kroku.
Přejmenovat nebezpečný příkaz
Doporučuje se také přejmenovat některé nebezpečné příkazy v prostředí Redis shell. Jedním z nebezpečných příkazů je "config". Používá se k načtení hesla Redis.
Podívejme se, jak získat heslo Redis pomocí příkazu "config".
Nejprve se připojte k Redis pomocí následujícího příkazu:
redis-cli
Po připojení ověřte Redis pomocí následujícího příkazu:
127.0.0.1:6379> AUTH A	D3Fs4%#df
Dále získejte heslo Redis pomocí následujícího příkazu:
127.0.0.1:6379> config get requirepass
Heslo Redis byste měli získat v následujícím výstupu:
1) "requirepass" 2) "A	D3Fs4%#df"
Příkaz "config" můžete přejmenovat úpravou souboru /etc/redis.conf:
nano /etc/redis.conf
Najděte následující řádek:
# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
A nahraďte jej následujícím řádkem:
rename-command CONFIG hitredis
Uložte a zavřete soubor. Poté restartujte službu Redis pomocí následujícího příkazu:
systemctl restart redis
Nyní připojte a ověřte Redis pomocí následujícího příkazu:
redis-cli
127.0.0.1:6379> AUTH A	D3Fs4%#df
Nyní získejte heslo Redis pomocí příkazu "config":
127.0.0.1:6379> config get requirepass
Měli byste dostat následující chybu:
(error) ERR unknown command `config`, with args beginning with: `get`, `requirepass`,
Nyní spusťte přejmenovaný příkaz, jak je znázorněno níže:
127.0.0.1:6379> hitredis get requirepass
Heslo Redis byste měli získat v následujícím výstupu:
1) "requirepass" 2) "A	D3Fs4%#df"
Závěr
Gratulujeme! úspěšně jste nainstalovali a zabezpečili server Redis na CentOS 8. Nyní můžete hostovat svou aplikaci a nakonfigurovat ji tak, aby používala mezipaměť Redis. Pokud máte nějaké dotazy, neváhejte se mě zeptat.