Redis je zkratka pro R emote d slovníkový server. Je to open source, in-memory a perzistentní databáze/úložiště klíč-hodnota, která ukládá data jako páry klíč-hodnota a také funguje jako zprostředkovatel zpráv. Redis podporuje širokou škálu datových struktur včetně sad , seznamy , hash , řetězce , HyperLogLogs a mnoho dalších.
Co je to pár klíč–hodnota?
Pár klíč–hodnota je sada nebo pár dvou propojených položek. Zvažte následující:
auto =Mercedes
V tomto případě je auto klíčem a Mercedes hodnotou. V databázi Redis lze tyto informace zapsat pomocí syntaxe:
SET „klíč1“ „hodnota1“
Náš příklad se přeloží do:
NASTAVTE „auto“ „Mercedes“
Výhody používání Redis
- Na rozdíl od relačních databází, jako je MySQL, je Redis databáze NoSQL, která ukládá data jako pár klíč-hodnota. Díky tomu je jednoduchý a flexibilní, protože není potřeba vytvářet žádné tabulky, sloupce a řádky, které jsou spojeny s relačními databázemi. Předávání dat do Redis je jednoduché a přímočaré.
- Jedním ze zjevných využití Redis je jeho použití jako systém ukládání do mezipaměti. I když to dělá, nabízí také stálost dat, která jsou na něm zapisována.
- In-memory architektura Redis umožňuje superrychlé ukládání a načítání dat.
- Systém mezipaměti redis je poměrně robustní a má kapacitu odolat selhání a přerušení.
- Redis se dodává s funkcí replikace Master-Slave. Když jsou změny provedeny v hlavním uzlu, jsou automaticky replikovány na podřízených uzlech, aby byla zajištěna vysoká dostupnost.
- Redis má schopnost uložit velké páry klíčů a hodnot o velikosti až 512 MB.
- Vzhledem k malým rozměrům lze Redis nainstalovat do zařízení IoT, jako jsou Raspberry Pi a Arduino, aby podporovaly aplikace IoT.
- Redis je multiplatformní databáze a systém ukládání do mezipaměti, který lze nainstalovat v systémech Windows, Mac a Linux.
Případy použití Redis
S výše uvedenými výhodami lze Redis používat následujícími způsoby:
- Analýza statistických údajů v reálném čase.
- Používá se pro integraci se službami AWS, jako jsou CloudTrail, CloudWatch a instance Amazon EC2.
- Může to být vynikající možnost pro ukládání webových stránek do mezipaměti.
- Platformy sociálních médií, jako je Instagram, používají Redis k ukládání obrázků
- Redis podporuje širokou škálu typů dat, jako jsou hyperloglogy, hash a geoprostorová data.
Nyní se podívejme, jak můžete nainstalovat Redis na CentOS 8 / RHEL 8
Krok 1:Aktualizace systémových úložišť
Přihlaste se do svého systému CentOS 8 / RHEL 8 a aktualizujte systémové balíčky a úložiště pomocí příkazu:
$ sudo dnf update -y
Krok 2:Nainstalujte Redis pomocí dnf
Redis verze 5.0.x je nyní součástí úložiště CentOS 8 AppStream a její instalace je procházkou růžovým sadem. Jednoduše spusťte příkaz:
$ sudo dnf install redis -y
Po instalaci můžete ověřit nainstalovanou verzi Redis spuštěním příkazu:
[[email protected] ~]$ rpm -q redis redis-5.0.3-1.module_el8.0.0+6+ab019c03.x86_64 [[email protected] ~]$
Z výstupu je zřejmé, že jsme nainstalovali Redis verze 5.0.3. Chcete-li získat další informace o Redis, jako je verze, architektura, licence a stručný popis, spusťte příkaz:
$ rpm -qi redis
Chcete-li spustit a povolit službu Redis, spusťte následující příkazy systemctl:
$ sudo systemctl start redis $ sudo systemctl enable redis
Po spuštění můžete ověřit jeho stav spuštěním
$ sudo systemctl status redis
Ve výchozím nastavení běží Redis na portu 6379. Můžete to potvrdit spuštěním příkazu netstat:
$ sudo netstat -pnltu | grep redis
Krok 3:Nakonfigurujte Redis pro vzdálený přístup
Výchozí instalace umožňuje připojení pouze ze serveru localhost nebo Redis a blokuje všechna externí připojení. Chystáme se nakonfigurovat Redis pro vzdálené připojení z klientského počítače.
Přístup ke konfiguračnímu souboru:
$ sudo vim /etc/redis.conf
Vyhledejte parametr vazby a nahraďte 127.0.0.1 0.0.0.0
bind 0.0.0.0
Uložte a zavřete konfigurační soubor. Aby se změny projevily, restartujte Redis.
$ sudo systemctl restart redis
Chcete-li se přihlásit do prostředí Redis, spusťte příkaz:
$ redis-cli
Zkuste ping na server redis. Měli byste dostat odpověď „PONG“, jak je uvedeno.
[[email protected] ~]$ redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
Krok 4:Zabezpečení serveru Redis
Naše nastavení Redis umožňuje komukoli přístup k shellu a databázím bez ověřování, což představuje vážné bezpečnostní riziko. Pro nastavení hesla se vraťte do konfiguračního souboru /etc/redis.conf
Najděte a odkomentujte parametr requirepass a zadejte silné heslo, jak je uvedeno
Restartujte Redis a vraťte se na server.
$ sudo systemctl restart redis
Pokud se před ověřením pokusíte spustit jakýkoli příkaz, zobrazí se níže uvedená chyba
[[email protected] ~]$ redis-cli 127.0.0.1:6379> ping (error) NOAUTH Authentication required. 127.0.0.1:6379>
Pro ověření zadejte „auth“ a poté nastavené heslo. V našem případě to bude:
auth [e-mail chráněn]
Poté můžete pokračovat ve spouštění svých příkazů.
[[email protected] ~]$ redis-cli 127.0.0.1:6379> auth [email protected] OK 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
Chcete-li opustit redis-cli, napište exit
Krok 5:Konfigurace brány firewall pro redis
Nakonec musíme nakonfigurovat firewall tak, aby umožňoval vzdálená připojení k serveru Redis. K tomu potřebujeme otevřít redis port, který je 6379.
Spusťte tedy níže uvedené příkazy.
$ sudo firewall-cmd --add-port=6379/tcp --permanent $ sudo firewall-cmd --reload
Pro vzdálený přístup k Redis použijte níže uvedenou syntaxi.
$ redis-cli -h REDIS_IP_ADDRESS
Dále se ověřte a stiskněte „ENTER '
IP adresa našeho serveru Redis je 192.168.1.5 Příkaz z jiného klientského počítače bude
$ redis-cli -h 192.168.1.5
Dále zadejte heslo a stiskněte „ENTER“
auth [e-mail chráněn]
Výše potvrzuje, že se Redis Server úspěšně nainstaloval, přejděme k další části.
Jak provést Redis Benchmark
Redis přichází s vestavěným nástrojem známým jako redis-benchmark, který poskytuje přehled o statistikách výkonu systému, jako je rychlost přenosu dat, propustnost a latence, abychom zmínili alespoň některé.
Některé z možností příkazů, které můžete použít s Redis, zahrnují
- -n: Definuje počet požadavků, které mají být provedeny. Výchozí hodnota je 100 000
- -c: Definuje počet paralelních připojení, která mají být simulována. Ve výchozím nastavení je tato hodnota 50
- -p: Toto je port Redis, který je ve výchozím nastavení 6379
- -h: Používá se k definování hostitele. Ve výchozím nastavení je tato hodnota nastavena na localhost (127.0.0.1)
- -a: Používá se k vyžádání hesla, pokud server potřebuje ověření
- -q: Znamená tichý režim. Zobrazuje průměrný počet požadavků za sekundu
- -t: Používá se ke spuštění kombinace testů
- -P: Používá se pro zřetězení pro lepší výkon.
- -d:Určuje velikost dat v bajtech pro hodnoty GET a SET. Ve výchozím nastavení je tato hodnota nastavena na 3 bajty
Příklady:
Pro potvrzení průměru ne. požadavků, které váš server Redis dokáže zpracovat, spusťte příkaz:
$ redis-benchmark -q
Věnujte pozornost poslednímu řádku. Znamená to, že Redis dokáže zpracovat 23046 požadavků za sekundu.
Navíc můžete použít volbu -t k provedení podmnožiny příkazů. V níže uvedeném příkladu jej používáme k zobrazení průměrného č. požadavky na příkazy SET a GET.
$ redis-benchmark -t set,get -q
[[email protected] ~]$ redis-benchmark -t set,get -q SET: 26102.84 requests per second GET: 25555.84 requests per second [[email protected] ~]$
Z výstupu můžeme vidět, že máme 26102,84 požadavků za sekundu na příkaz SET a 25555,84 požadavků na příkaz GET.
Ve výchozím nastavení je počet paralelních připojení 50 . Chcete-li zadat jiný počet klientských připojení, řekněme 1000, použijte parametr -c, jak je znázorněno:
[[email protected] ~]$ redis-benchmark -t set,get -q -c 1000 SET: 21997.36 requests per second GET: 22119.00 requests per second [[email protected] ~]$
Jak jste si mohli všimnout, počet požadavků za sekundu se snížil kvůli nárůstu počtu paralelních připojení z 50 na 1000.
Pojďme zvýšit a nastavit počet požadavků na 1000000
[[email protected] ~]$ redis-benchmark -t set,get -q -c 1000 -n 1000000 SET: 16660.28 requests per second GET: 21550.79 requests per second [[email protected] ~]$
Opět platí, že hodnoty pro SET a GET klesají kvůli nárůstu počtu požadavků z výchozích 100 000 na 1 000 000.
A tím je naše dnešní téma uzavřeno. Úspěšně jsme nainstalovali server Redis na CentOS 8 a podařilo se nám na našem serveru provést několik benchmarkingových testů. Jste vítáni, když se podělíte o své názory a komentáře.