Redis: keš i redovi
Instaliranje Redis-a na VDS, lozinka i vezivanje na lokalnu adresu, ograničenje memorije i politika izbacivanja, kao i razlika između keša i reda.
Ažurirano 23. avgust 2026.
Redis drži podatke u memoriji, zato se koristi za keširanje, sesije, brojače i redove zadataka. Na VPS-u je koristan tačno onoliko koliko se uklapa u memoriju: radni set veći od slobodne memorije više nije ubrzanje, već uzrok padova.
Instalacija
apt update && apt install -y redis-server # Debian, Ubuntu
dnf install -y redis # AlmaLinux, CentOS Stream
systemctl enable --now redis-server
redis-cli ping
Odgovor PONG znači da server radi.
Obavezna konfiguracija
Datoteka /etc/redis/redis.conf:
bind 127.0.0.1
protected-mode yes
requirepass long-random-password
maxmemory 512mb
maxmemory-policy allkeys-lru
appendonly no
systemctl restart redis-server
redis-cli -a 'password' ping
Skeneri pronađu Redis bez lozinke izložen internetu za nekoliko minuta i iskoriste ga za rudarenje. Ako ti je aplikacija na istoj mašini, zadrži bind 127.0.0.1 i ne izlaži port 6379 spolja. Ako ti je potreban spoljni pristup, koristi samo SSH tunel ili VPN.
Memorija i izbacivanje
Postavi maxmemory eksplicitno: bez toga Redis raste dok sistem ne počne da ubija procese. Razumno je dati mu četvrtinu memorije paketa.
| Paket | Memorija mašine | maxmemory |
|---|---|---|
| VDS-1 | 2 GB | 256 MB |
| VDS-2 | 4 GB | 512 MB |
| VDS-3 | 8 GB | 1–2 GB |
| VDS-5 | 24 GB | 4–6 GB |
Politika zavisi od uloge:
- keš —
allkeys-lru, stari ključevi se tiho izbacuju; - red zadataka —
noeviction, gubitak zadatka je neprihvatljiv, greška pri upisu je bolja.
Ne mešaj keš i red u jednoj bazi upravo zbog te protivrečnosti. Razdvoji ih u različite brojeve baza (SELECT 1) ili u dve instance.
Trajnost na disku
Podrazumevano Redis povremeno upisuje snimak u dump.rdb. Za čist keš to je nepotrebno pisanje na disk — isključi save. Za redove uključi appendonly yes: tako se zadaci neće izgubiti posle restarta mašine.
Imaj u vidu da je brzina upisa na disk ograničena paketom: 60 MB/s po jezgru, ne niže od 60 i ne više od 400 MB/s.
Nadzor
redis-cli -a 'password' info memory
redis-cli -a 'password' info stats
redis-cli -a 'password' --stat
redis-cli -a 'password' slowlog get 10
Ključna metrika je evicted_keys: stalni rast znači da nema dovoljno memorije i da se keš ne isplati.
Česte greške
| Simptom | Uzrok |
|---|---|
NOAUTH Authentication required | Aplikaciji nije data lozinka |
OOM command not allowed | Dostignut maxmemory uz politiku noeviction |
DENIED Redis is running in protected mode | Spoljni pristup uz bind 127.0.0.1 — tako i treba |
| Podaci su nestali posle restarta | Trajnost nije uključena |
| Mašina je otišla u swap | Zbir maxmemory i ostalih servisa prevazilazi memoriju paketa |
Ne koristi
KEYS *na produkcionom serveru: komanda blokira Redis dok prolazi kroz sve ključeve. Za iteraciju koristiSCAN.