15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți
31.10.2024
1 +1

Cum să instalezi și să configurezi Redis pe Linux: Un ghid complet pas cu pas

Redis este un depozit de structuri de date puternic, open-source, în memorie, utilizat pe scară largă ca bază de date, cache și broker de mesaje. Renumit pentru performanța sa excepțională și versatilitate, Redis este soluția de referință pentru dezvoltatori care doresc să accelereze dramatic aplicațiile prin caching-ul datelor frecvent solicitate, gestionarea sesiunilor și gestionarea analiticii în timp real. Indiferent dacă rulați o aplicație web cu trafic ridicat pe un plan VPS Hosting sau gestionați o infrastructură dedicată, acest ghid cuprinzător vă ghidează prin fiecare pas al instalării, configurării și securizării Redis pe un sistem Linux.

Ce este Redis și de ce ar trebui să îl utilizați?

Înainte de a intra în procesul de instalare, merită să înțelegeți ce face Redis atât de popular:

  • Stocare în memorie: Redis stochează datele în RAM, ceea ce face operațiile de citire și scriere extrem de rapide — adesea finalizate în mai puțin de o milisecundă.
  • Structuri de date versatile: Suportă stringuri, hash-uri, liste, seturi, seturi sortate, bitmap-uri și multe altele.
  • Opțiuni de persistență: În ciuda faptului că este în memorie, Redis poate persista datele pe disc pentru a supraviețui restarturi.
  • Mesagerie Pub/Sub: Redis suportă modele de mesagerie publish/subscribe pentru comunicare în timp real între servicii.
  • Suport larg de limbaje: Biblioteci client oficiale există pentru Python, PHP, Node.js, Java, Ruby, Go și multe altele.

Redis este deosebit de valoros în mediile în care performanța aplicației este critică — de exemplu, când backend-ul dvs. este găzduit pe un Dedicated Server care servește milioane de cereri pe zi.

Cerințe preliminare

Înainte de a începe, asigurați-vă că aveți:

  • Un server Linux care rulează Ubuntu/Debian sau CentOS/RHEL
  • Acces root sau sudo la server
  • O înțelegere de bază a liniei de comandă Linux
  • O conexiune internet activă pentru descărcarea pachetelor

Pasul 1: Actualizați sistemul dvs.

Întotdeauna începeți prin actualizarea indexului de pachete al sistemului dvs. și actualizarea pachetelor instalate la versiunile lor cele mai recente. Aceasta asigură compatibilitatea și securitatea:

sudo apt update && sudo apt upgrade -y

Pentru sisteme CentOS/RHEL:

sudo yum update -y

Menținerea serverului dvs. la zi este o practică fundamentală de securitate, mai ales în mediile de producție.

Pasul 2: Instalați Redis

Majoritatea distribuțiilor Linux majore includ Redis în depozitele lor oficiale de pachete, ceea ce face instalarea simplă.

Pe Ubuntu / Debian

sudo apt install redis-server -y

Pe CentOS / RHEL

Sistemele CentOS/RHEL necesită ca depozitul EPEL (Extra Packages for Enterprise Linux) să fie activat mai întâi:

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

> Notă: Pe versiunile mai noi ale CentOS/RHEL (8+), puteți utiliza dnf în loc de yum:

> “`bash

> sudo dnf install redis -y

> “`

Pasul 3: Verificați instalarea

După finalizarea instalării, confirmați că Redis a fost instalat corect verificând versiunea sa:

redis-server --version

Ieșire așteptată (exemplu):

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

Dacă vedeți un număr de versiune, Redis a fost instalat cu succes pe sistemul dvs.

Pasul 4: Porniți și activați serviciul Redis

După instalare, trebuie să porniți serviciul Redis și să îl configurați pentru a se lansa automat la pornirea sistemului.

Pe Ubuntu / Debian

sudo systemctl start redis
sudo systemctl enable redis

Pe CentOS / RHEL

sudo systemctl start redis
sudo systemctl enable redis

Verificați dacă Redis rulează

sudo systemctl status redis

Ieșire așteptată:

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

Un status verde active (running) confirmă că Redis funcționează corect.

Pasul 5: Configurați Redis

Comportamentul Redis este controlat de fișierul său de configurare principal:

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

Deschideți fișierul de configurare cu un editor de text:

sudo nano /etc/redis/redis.conf

Mai jos sunt opțiunile de configurare cele mai importante pe care ar trebui să le revizuiți și să le ajustați.

5.1 Setați o parolă (autentificare)

În mod implicit, Redis nu necesită autentificare. Pentru orice mediu de producție, setarea unei parole puternice este esențială:

Găsiți linia care conține # requirepass și actualizați-o:

requirepass your_strong_password_here

Alegeți o parolă lungă, generată aleatoriu. Redis este extrem de rapid, ceea ce înseamnă că atacurile de forță brută pot încerca sute de mii de ghicitori pe secundă fără limitare de rată.

5.2 Legați adresa IP

În mod implicit, Redis se leagă doar la 127.0.0.1 (localhost), ceea ce previne accesul extern. Aceasta este cea mai sigură setare implicită.

Dacă aplicația dvs. trebuie să se conecteze la Redis de pe un alt server, puteți lega o adresă IP suplimentară:

bind 127.0.0.1 192.168.1.100

> Avertisment de securitate: Nu legați niciodată Redis la 0.0.0.0 (toate interfețele) pe un server public fără reguli de firewall adecvate. Instanțele Redis expuse sunt un vector de atac comun.

5.3 Schimbați portul implicit

Redis ascultă pe portul 6379 în mod implicit. Schimbarea acestui port adaugă un strat de obscuritate:

port 6380

Nu uitați să actualizați regulile firewall-ului și șirurile de conexiune ale aplicației dacă schimbați portul.

5.4 Aplicați modificările de configurare

După editarea redis.conf, reporniți serviciul Redis pentru a aplica toate modificările:

sudo systemctl restart redis

Pasul 6: Testați instalarea Redis

Utilizați CLI-ul Redis încorporat (Command Line Interface) pentru a verifica că Redis funcționează corect:

redis-cli

Dacă ați setat o parolă, autentificați-vă mai întâi:

AUTH your_strong_password_here

Executați un test Ping

ping

Răspuns așteptat:

PONG

Setați și recuperați o pereche cheie-valoare

SET mykey "Hello, Redis!"
GET mykey

Răspuns așteptat:

"Hello, Redis!"

Dacă Redis returnează valoarea stocată corect, instalarea dvs. este complet funcțională și baza de date stochează și recuperează datele așa cum era de așteptat.

Ieșiți din CLI

exit

Pasul 7: Configurați Redis ca daemon în fundal (opțional)

Dacă doriți ca Redis să ruleze ca proces daemon în fundal (mai degrabă decât un proces în prim-plan), configurați opțiunea daemonize în redis.conf:

daemonize yes

După salvarea fișierului, reporniți Redis:

sudo systemctl restart redis

Verificați dacă serviciul rulează în fundal:

sudo systemctl status redis

Puteți confirma, de asemenea, că procesul Redis este activ utilizând:

ps aux | grep redis

Pasul 8: Activați persistența Redis (opțional, dar recomandat)

În mod implicit, Redis stochează datele doar în memorie, ceea ce înseamnă că datele se pierd dacă serverul se repornește. Redis oferă două mecanisme de persistență pentru a aborda acest lucru:

Opțiunea 1: RDB (Redis Database Backup) — Snapshot-uri

RDB creează snapshot-uri punctuale ale setului de date la intervale specificate. Configurați-l în 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 este eficient pentru backup-uri și recuperare în caz de dezastru, dar poate pierde datele scrise între snapshot-uri.

Opțiunea 2: AOF (Append Only File) — Înregistrare scriere

AOF înregistrează fiecare operație de scriere într-un fișier, oferind garanții de durabilitate mult mai puternice:

appendonly yes

Puteți configura, de asemenea, politica de sincronizare AOF:

# Options: always, everysec, no
appendfsync everysec
  • always — Cea mai sigură, dar cea mai lentă (sincronizează după fiecare scriere)
  • everysec — Echilibru bun între performanță și siguranță (sincronizează în fiecare secundă)
  • no — Cea mai rapidă, dar se bazează pe programul de flush al SO-ului

> Bună practică: Pentru mediile de producție, utilizați atât RDB cât și AOF împreună pentru durabilitate maximă a datelor.

Pasul 9: Securizarea Redis — Bune practici

Securitatea este critică pentru orice implementare Redis. Urmați aceste bune practici pentru a întări instanța Redis:

1. Activați autentificarea cu parolă

După cum este descris în Pasul 5.1, setați întotdeauna o valoare requirepass puternică în redis.conf.

2. Restricționați accesul la rețea

  • Legați Redis la 127.0.0.1 decât dacă accesul la distanță este explicit necesar.
  • Utilizați o rețea privată sau VPN pentru comunicarea Redis între servere.

3. Configurați regulile firewall-ului

Permiteți traficul Redis doar de la adrese IP de încredere. Utilizând ufw pe Ubuntu:

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

Utilizând firewalld pe 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. Redenumiri sau dezactivați comenzile periculoase

Redis are comenzi administrative puternice (cum ar fi FLUSHALL, CONFIG, DEBUG) care ar putea fi exploatate. Redenumiri sau dezactivați-le în redis.conf:

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

5. Rulați Redis ca utilizator non-root

Pachetul Redis pe majoritatea distribuțiilor creează deja un utilizator de sistem dedicat redis. Asigurați-vă că Redis nu este niciodată rulat ca root.

6. Mențineți Redis actualizat

Actualizați regulat Redis pentru a corecta vulnerabilități cunoscute:

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

Pasul 10: Integrarea Redis cu aplicațiile dvs.

Cu Redis instalat și securizat, puteți acum să îl integrați în stiva aplicației dvs. Iată o privire de ansamblu rapidă a integrărilor populare de limbaje:

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 — Extensie phpredis

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 se integrează perfect cu practic fiecare framework web modern și CMS, inclusiv WordPress, Laravel, Django și Express.js — ceea ce o face un instrument neprețuit pentru stiva oricărui dezvoltator.

Cazuri de utilizare comune Redis

Înțelegerea locurilor în care Redis excela vă ajută să obțineți cel mai mult din implementarea dvs.:

Caz de utilizareDescriere
Stocare sesiuniStochează sesiunile utilizatorului în Redis pentru acces rapid și scalabil pe mai multe servere de aplicații
Caching bază de dateCache-ază rezultatele costisitoare ale interogărilor SQL pentru a reduce încărcarea bazei de date
Limitare ratăUrmărește numărurile de cereri API per utilizator/IP utilizând contoare Redis
Clasamente în timp realUtilizează seturi sortate pentru a menține clasamente live
Cozi de mesajeUtilizează liste Redis sau Pub/Sub pentru cozi de sarcini ușoare
Căutare text completUtilizează modulul RediSearch pentru indexare de căutare rapidă

Rezolvarea problemelor comune Redis

Redis nu pornește

Verificați jurnalele pentru erori:

sudo journalctl -u redis -n 50

Cauzele comune includ conflicte de port, sintaxă redis.conf incorectă sau memorie insuficientă.

Eroare de conexiune refuzată

Verificați dacă Redis ascultă pe adresa și portul așteptat:

ss -tlnp | grep redis

Erori de autentificare

Dacă primiți NOAUTH Authentication required, asigurați-vă că transmiteți parola corectă în șirul de conexiune al clientului sau prin AUTH în CLI.

Utilizare ridicată a memoriei

Configurați o limită de memorie în redis.conf pentru a preveni Redis să consume toată RAM-ul disponibil:

###PPT_

15%

Economisește 15% la toate serviciile de găzduire

Testează-ți abilitățile și obține Reducere la orice plan de găzduire

Utilizați codul:

Skills
Începeți