15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij
31.10.2024
1 +1

Jak zainstalować i skonfigurować Redis na Linux: Kompletny przewodnik krok po kroku

Redis to potężny, otwarty, magazyn struktur danych w pamięci szeroko stosowany jako baza danych, pamięć podręczna i broker wiadomości. Znany z wyjątkowej wydajności i wszechstronności, Redis jest rozwiązaniem pierwszego wyboru dla programistów chcących dramatycznie przyspieszyć aplikacje poprzez buforowanie często żądanych danych, zarządzanie sesjami i obsługę analityki w czasie rzeczywistym. Niezależnie od tego, czy uruchamiasz aplikację internetową o dużym ruchu na planie VPS Hosting, czy zarządzasz dedykowaną infrastrukturą, ten kompleksowy przewodnik przeprowadzi Cię przez każdy krok instalacji, konfiguracji i zabezpieczenia Redis w systemie Linux.

Czym jest Redis i dlaczego go używać?

Przed przystąpieniem do procesu instalacji warto zrozumieć, co sprawia, że Redis jest tak popularny:

  • Magazyn w pamięci: Redis przechowuje dane w RAM, co sprawia, że operacje odczytu i zapisu są niezwykle szybkie — często wykonywane w mniej niż milisekundę.
  • Wszechstronne struktury danych: Obsługuje ciągi znaków, skróty, listy, zestawy, zestawy posortowane, mapy bitowe i wiele więcej.
  • Opcje trwałości: Pomimo przechowywania w pamięci, Redis może utrwalać dane na dysku, aby przetrwać ponowne uruchomienia.
  • Obsługa wiadomości Pub/Sub: Redis obsługuje wzorce wiadomości publikuj/subskrybuj do komunikacji w czasie rzeczywistym między usługami.
  • Szerokie wsparcie języków: Oficjalne biblioteki klienckie istnieją dla Python, PHP, Node.js, Java, Ruby, Go i wielu innych.

Redis jest szczególnie cenny w środowiskach, gdzie wydajność aplikacji jest krytyczna — na przykład, gdy Twój backend jest hostowany na Dedicated Server obsługującym miliony żądań dziennie.

Wymagania wstępne

Zanim zaczniesz, upewnij się, że masz:

  • Serwer Linux z systemem Ubuntu/Debian lub CentOS/RHEL
  • Dostęp root lub sudo do serwera
  • Podstawową wiedzę na temat wiersza poleceń Linux
  • Aktywne połączenie internetowe do pobierania pakietów

Krok 1: Aktualizacja systemu

Zawsze zacznij od aktualizacji indeksu pakietów systemu i uaktualnienia zainstalowanych pakietów do ich najnowszych wersji. Zapewnia to kompatybilność i bezpieczeństwo:

sudo apt update && sudo apt upgrade -y

Dla systemów CentOS/RHEL:

sudo yum update -y

Utrzymywanie serwera w aktualnym stanie to fundamentalna praktyka bezpieczeństwa, szczególnie w środowiskach produkcyjnych.

Krok 2: Instalacja Redis

Większość głównych dystrybucji Linux zawiera Redis w swoich oficjalnych repozytoriach pakietów, co sprawia, że instalacja jest prosta.

Na Ubuntu / Debian

sudo apt install redis-server -y

Na CentOS / RHEL

Systemy CentOS/RHEL wymagają włączenia repozytorium EPEL (Extra Packages for Enterprise Linux) w pierwszej kolejności:

sudo yum install epel-release -y
sudo yum install redis -y

> Uwaga: W nowszych wersjach CentOS/RHEL (8+) możesz użyć dnf zamiast yum:

> “`bash

> sudo dnf install redis -y

> “`

Krok 3: Weryfikacja instalacji

Po zakończeniu instalacji potwierdź, że Redis został zainstalowany prawidłowo, sprawdzając jego wersję:

redis-server --version

Oczekiwane wyjście (przykład):

Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=...

Jeśli widzisz numer wersji, Redis został pomyślnie zainstalowany w systemie.

Krok 4: Uruchomienie i włączenie usługi Redis

Po instalacji musisz uruchomić usługę Redis i skonfigurować ją do automatycznego uruchamiania przy starcie systemu.

Na Ubuntu / Debian

sudo systemctl start redis
sudo systemctl enable redis

Na CentOS / RHEL

sudo systemctl start redis
sudo systemctl enable redis

Weryfikacja, czy Redis jest uruchomiony

sudo systemctl status redis

Oczekiwane wyjście:

● redis.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis.service; enabled)
   Active: active (running) since ...

Zielony status active (running) potwierdza, że Redis działa prawidłowo.

Krok 5: Konfiguracja Redis

Zachowanie Redis jest kontrolowane przez jego główny plik konfiguracyjny:

  • Ubuntu/Debian: /etc/redis/redis.conf
  • CentOS/RHEL: /etc/redis.conf

Otwórz plik konfiguracyjny edytorem tekstu:

sudo nano /etc/redis/redis.conf

Poniżej znajdują się najważniejsze opcje konfiguracyjne, które powinieneś przejrzeć i dostosować.

5.1 Ustawienie hasła (uwierzytelnianie)

Domyślnie Redis nie wymaga uwierzytelniania. W każdym środowisku produkcyjnym ustawienie silnego hasła jest niezbędne:

Znajdź linię zawierającą # requirepass i zaktualizuj ją:

requirepass your_strong_password_here

Wybierz długie, losowo wygenerowane hasło. Redis jest niezwykle szybki, co oznacza, że ataki brute-force mogą próbować setek tysięcy zgadnięć na sekundę bez ograniczenia szybkości.

5.2 Powiązanie adresu IP

Domyślnie Redis wiąże się tylko z 127.0.0.1 (localhost), co uniemożliwia dostęp zewnętrzny. To jest najbezpieczniejsze ustawienie domyślne.

Jeśli Twoja aplikacja musi połączyć się z Redis z innego serwera, możesz powiązać dodatkowy adres IP:

bind 127.0.0.1 192.168.1.100

> Ostrzeżenie bezpieczeństwa: Nigdy nie wiąż Redis z 0.0.0.0 (wszystkie interfejsy) na publicznie dostępnym serwerze bez odpowiednich reguł zapory. Odsłonięte instancje Redis są częstym wektorem ataku.

5.3 Zmiana domyślnego portu

Redis nasłuchuje na porcie 6379 domyślnie. Zmiana tego portu dodaje warstwę zaciemnienia:

port 6380

Pamiętaj, aby zaktualizować reguły zapory i ciągi połączeń aplikacji, jeśli zmienisz port.

5.4 Zastosowanie zmian konfiguracji

Po edycji redis.conf uruchom ponownie usługę Redis, aby zastosować wszystkie zmiany:

sudo systemctl restart redis

Krok 6: Testowanie instalacji Redis

Użyj wbudowanego interfejsu wiersza poleceń Redis (CLI) do weryfikacji, że Redis działa prawidłowo:

redis-cli

Jeśli ustawiłeś hasło, najpierw się uwierzytelnij:

AUTH your_strong_password_here

Uruchomienie testu Ping

ping

Oczekiwana odpowiedź:

PONG

Ustawienie i pobranie pary klucz-wartość

SET mykey "Hello, Redis!"
GET mykey

Oczekiwana odpowiedź:

"Hello, Redis!"

Jeśli Redis zwraca prawidłowo przechowywaną wartość, Twoja instalacja jest w pełni funkcjonalna, a baza danych przechowuje i pobiera dane zgodnie z oczekiwaniami.

Wyjście z CLI

exit

Krok 7: Konfiguracja Redis jako demona w tle (opcjonalnie)

Jeśli chcesz, aby Redis działał jako proces demona w tle (zamiast procesu na pierwszym planie), skonfiguruj opcję daemonize w redis.conf:

daemonize yes

Po zapisaniu pliku uruchom ponownie Redis:

sudo systemctl restart redis

Weryfikuj, że usługa działa w tle:

sudo systemctl status redis

Możesz również potwierdzić, że proces Redis jest aktywny, używając:

ps aux | grep redis

Krok 8: Włączenie trwałości Redis (opcjonalnie, ale zalecane)

Domyślnie Redis przechowuje dane tylko w pamięci, co oznacza, że dane są tracone, jeśli serwer się uruchomi ponownie. Redis zapewnia dwa mechanizmy trwałości, aby rozwiązać ten problem:

Opcja 1: RDB (Redis Database Backup) — Snapshoting

RDB tworzy migawki Twojego zestawu danych w określonych interwałach. Skonfiguruj to w redis.conf:

# Save a snapshot if at least 1 key changed in 900 seconds (15 minutes)
save 900 1

# Save a snapshot if at least 10 keys changed in 300 seconds (5 minutes)
save 300 10

# Save a snapshot if at least 10,000 keys changed in 60 seconds
save 60 10000

RDB jest wydajny dla kopii zapasowych i odzyskiwania po awarii, ale może stracić dane napisane między migawkami.

Opcja 2: AOF (Append Only File) — Rejestrowanie zapisu

AOF rejestruje każdą operację zapisu w pliku, zapewniając znacznie silniejsze gwarancje trwałości:

appendonly yes

Możesz również skonfigurować politykę synchronizacji AOF:

# Options: always, everysec, no
appendfsync everysec
  • always — Najbezpieczniejszy, ale najwolniejszy (synchronizuje po każdym zapisie)
  • everysec — Dobra równowaga wydajności i bezpieczeństwa (synchronizuje co sekundę)
  • no — Najszybszy, ale opiera się na harmonogramie opróżniania systemu operacyjnego

> Najlepsza praktyka: W środowiskach produkcyjnych użyj zarówno RDB, jak i AOF razem, aby uzyskać maksymalną trwałość danych.

Krok 9: Zabezpieczanie Redis — najlepsze praktyki

Bezpieczeństwo jest krytyczne dla każdego wdrożenia Redis. Postępuj zgodnie z tymi najlepszymi praktykami, aby wzmocnić swoją instancję Redis:

1. Włączenie uwierzytelniania hasłem

Jak opisano w kroku 5.1, zawsze ustaw silną wartość requirepass w redis.conf.

2. Ograniczenie dostępu sieciowego

  • Powiąż Redis z 127.0.0.1 chyba że dostęp zdalny jest wyraźnie wymagany.
  • Użyj sieci prywatnej lub VPN do komunikacji Redis między serwerami.

3. Konfiguracja reguł zapory

Zezwól na ruch Redis tylko z zaufanych adresów IP. Używając ufw na Ubuntu:

sudo ufw allow from 192.168.1.0/24 to any port 6379
sudo ufw deny 6379

Używając firewalld na CentOS/RHEL:

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="6379" accept'
sudo firewall-cmd --reload

4. Zmiana nazwy lub wyłączenie niebezpiecznych poleceń

Redis ma potężne polecenia administracyjne (takie jak FLUSHALL, CONFIG, DEBUG), które mogą być wykorzystane. Zmień ich nazwy lub wyłącz je w redis.conf:

rename-command FLUSHALL ""
rename-command CONFIG "SECURE_CONFIG_XYZ123"
rename-command DEBUG ""

5. Uruchamianie Redis jako użytkownika niebędącego root

Pakiet Redis w większości dystrybucji już tworzy dedykowanego użytkownika systemowego redis. Upewnij się, że Redis nigdy nie jest uruchamiany jako root.

6. Utrzymywanie Redis w aktualnym stanie

Regularnie aktualizuj Redis, aby załatać znane luki w zabezpieczeniach:

sudo apt update && sudo apt upgrade redis-server -y

Krok 10: Integracja Redis z aplikacjami

Po zainstalowaniu i zabezpieczeniu Redis możesz teraz zintegrować go ze stosem aplikacji. Oto szybki przegląd popularnych integracji języków:

Python — redis-py

pip install redis
import redis

r = redis.Redis(host='127.0.0.1', port=6379, password='your_password', decode_responses=True)
r.set('greeting', 'Hello from Python!')
print(r.get('greeting'))

PHP — phpredis Extension

sudo apt install php-redis -y
<?php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('your_password');
$redis->set('greeting', 'Hello from PHP!');
echo $redis->get('greeting');
?>

Node.js — ioredis

npm install ioredis
const Redis = require('ioredis');
const redis = new Redis({ host: '127.0.0.1', port: 6379, password: 'your_password' });

redis.set('greeting', 'Hello from Node.js!');
redis.get('greeting').then(value => console.log(value));

Redis integruje się bezproblemowo z praktycznie każdą nowoczesną strukturą internetową i CMS, w tym WordPress, Laravel, Django i Express.js — co czyni go nieocenionym narzędziem dla stosu każdego programisty.

Typowe przypadki użycia Redis

Zrozumienie, gdzie Redis się wyróżnia, pomaga Ci maksymalnie wykorzystać wdrożenie:

Przypadek użyciaOpis
Magazyn sesjiPrzechowuj sesje użytkownika w Redis, aby uzyskać szybki, skalowalny dostęp na wielu serwerach aplikacji
Buforowanie bazy danychBuforuj wyniki kosztownych zapytań SQL, aby zmniejszyć obciążenie bazy danych
Ograniczenie szybkościŚledź liczby żądań API na użytkownika/IP, używając liczników Redis
Tabele wyników w czasie rzeczywistymUżyj zestawów posortowanych do utrzymania żywych rankingów
Kolejkowanie wiadomościUżyj list Redis lub Pub/Sub dla lekkich kolejek zadań
Wyszukiwanie pełnotekstoweUżyj modułu RediSearch do szybkiego indeksowania wyszukiwania
15%

Zaoszczędź 15% na wszystkich usługach hostingowych

Sprawdź swoje umiejętności i zdobądź Rabat na dowolny plan hostingowy

Użyj kodu:

Skills
Rozpocznij