Redis és Valkey telepítése AlmaLinuxon

Linux 6 perc olvasás

A Redis memóriában tárolt kulcs-érték adatbázis. Weboldalaknál leggyakrabban gyorsítótárként használják: a WordPress objektum-gyorsítótára, a munkamenetek vagy egy webáruház ideiglenes adatai kerülnek bele, így az alkalmazásnak nem kell minden kérésnél az adatbázishoz fordulnia.

A Valkey a Redis 2024-es licencváltása után indult nyílt forrású (BSD licencű) változat, amelyet a Linux Foundation gondoz. A Redis 7.2-ből ágazott el, és ugyanazt a protokollt és parancsokat használja, így a Redishez írt programok és PHP-bővítmények változtatás nélkül működnek vele. A Red Hat ezért AlmaLinux 10-ben már csak a Valkeyt szállítja.

A lépéseket 2026 októberében AlmaLinux 10.2 és 9.8 rendszeren próbáltuk ki. A parancsokat root felhasználóként vagy sudo-val futtassa.

Melyiket honnan?

Rendszer A rendszer tárolójában A Remi tárolóban
AlmaLinux 10 Valkey 8.0 (nincs Redis) Redis 7.2 … 8.10, Valkey 8.1 … 9.2
AlmaLinux 9 Redis 6.2 (alap), Redis 7.2 (redis:7 modul), Valkey 8.0 Redis 6.0 … 8.10, Valkey 8.1 … 9.2

Ha nincs különleges igénye, használja a rendszer tárolójának változatát: a Valkeyt AlmaLinux 10-en, vagy a Redis 7.2-t, illetve a Valkeyt AlmaLinux 9-en. Ezeket az AlmaLinux frissítései javítják. Ha egy alkalmazás kifejezetten Redis 8-at kér (például a Redis Query Engine vagy a JSON-modul miatt), a Remi tárolóból telepítse.

A) Valkey a rendszer tárolójából

sudo dnf install valkey
sudo systemctl enable --now valkey
valkey-cli ping

A válasz PONG. A teszten a valkey-8.0.11 települt AlmaLinux 10-re. A Valkey a Redis-szel kompatibilis verziószámot is jelenti:

valkey-cli INFO server | grep -E 'redis_version|valkey_version'
redis_version:7.2.4
valkey_version:8.0.11

A programok nevei valkey- kezdetűek (valkey-server, valkey-cli, valkey-benchmark), a szolgáltatás neve valkey, a beállításfájl a /etc/valkey/valkey.conf, az adatkönyvtár a /var/lib/valkey, a napló a /var/log/valkey/valkey.log. A beállításfájlt csak root olvashatja, ezért szerkesztéshez és megtekintéshez is sudo kell. A redis-cli és a redis-server parancsnév AlmaLinux 10-en nem létezik, és a teszt idején nem volt hozzá kompatibilitási csomag sem; a szkriptekben írja át valkey-cli-re.

AlmaLinux 9-en a Redis 7.2 a modulból telepíthető (a teszten a redis-7.2.16 települt):

sudo dnf module enable redis:7
sudo dnf install redis
sudo systemctl enable --now redis

Modulválasztás nélkül a dnf install redis AlmaLinux 9-en a régi 6.2-es Redist telepítené.

B) Redis 8 a Remi tárolóból

A Remi tároló beállítása után (lásd: Remi tároló telepítése AlmaLinuxon) válassza ki a verziót, például a Redis 8.4-et:

sudo dnf module enable redis:remi-8.4
sudo dnf install redis
sudo systemctl enable --now redis
redis-cli ping

A teszten a redis-8.4.8 települt, és mellette ajánlott függőségként a redis-bloom, redis-json és redis-timeseries modul is. A beállításfájl a /etc/redis/redis.conf, az adatkönyvtár a /var/lib/redis, a napló a /var/log/redis/redis.log.

Ha a gépen a Valkey is telepítve van, előbb állítsa le és távolítsa el (sudo systemctl disable --now valkey, sudo dnf remove valkey), mert mindkettő a 6379-es portot használja.

A Redis 8 háromféle licenc alatt jelenik meg, köztük az AGPLv3 alatt. Saját szerveren, saját alkalmazás gyorsítótáraként ez nem jelent kötelezettséget; ha a Redist szolgáltatásként másoknak nyújtaná, olvassa el a licencfeltételeket.

Az alapbeállítások

A következők a Valkeyre és a Redisre egyaránt érvényesek; a fájl a /etc/valkey/valkey.conf, illetve a /etc/redis/redis.conf. A teszten mindkét csomag ezekkel az alapértékekkel települt:

bind 127.0.0.1 -::1
protected-mode yes
port 6379

Vagyis a szerver csak a gépen belülről fogad kapcsolatot. Ha a Redist csak a saját weboldala használja ugyanazon a szerveren, ezen ne változtasson: a 6379-es portot soha ne nyissa meg az internet felé. Ha egy másik szerver is használná, azt magánhálózaton vagy SSH-alagúton át tegye, és mindenképp állítson be jelszót.

Emellett Unix socketen is figyel: /run/valkey/valkey.sock, illetve /run/redis/redis.sock.

Jelszó

Keresse meg a beállításfájlban a # requirepass foobared sort, és írja át:

requirepass Hosszu-Egyedi-Jelszo

Újraindítás után jelszó nélkül minden parancs hibát ad:

NOAUTH Authentication required.

A redis-cli (Valkey-nél valkey-cli) a jelszót a --askpass kapcsolóval kéri be rejtve, vagy a REDISCLI_AUTH környezeti változóból veszi. A -a jelszo kapcsoló is működik, de a jelszó így a parancselőzményekbe és a folyamatlistába kerül.

Memóriakorlát

Gyorsítótárnál adjon meg felső korlátot, és mondja meg, mit dobjon el a Redis, ha betelt:

maxmemory 256mb
maxmemory-policy allkeys-lru

Az allkeys-lru a legrégebben használt kulcsokat törli, ez gyorsítótárhoz megfelelő. Más lehetőségek: allkeys-lfu (a legritkábban használtakat törli), volatile-lru (csak a lejárati idővel rendelkező kulcsok közül töröl). Az alapértelmezett noeviction beállításnál a Redis betelt memória mellett hibát ad az írásokra. Ha a Redisben olyan adatot tárol, amely nem veszhet el (például sorban álló feladatokat), ne használjon allkeys- szabályt. A korlátot a szerver teljes memóriájához mérje: a PHP-nak és az adatbázisnak is maradjon elég (lásd: Elfogyott a memória: OOM killer és swap fájl).

Módosítás után:

sudo systemctl restart valkey    # vagy: redis

Az overcommit figyelmeztetés

Első indításkor a naplóban ez a figyelmeztetés jelent meg:

WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition.

A háttérmentés (a memóriatartalom lemezre írása) ehhez a kernelbeállításhoz kötődik. Kapcsolja be tartósan:

echo 'vm.overcommit_memory = 1' | sudo tee /etc/sysctl.d/90-redis.conf
sudo sysctl -p /etc/sysctl.d/90-redis.conf

Újraindítás után a figyelmeztetés eltűnt.

Kipróbálás a parancssorból

redis-cli munkamenet AlmaLinux 10 rendszeren: jelszó megadása az --askpass kapcsolóval, majd PING, SET, GET, lejárati idős kulcs, INCR, CONFIG GET maxmemory-policy és DBSIZE

SET udvozles "Szia, Redis!"
GET udvozles
SET munkamenet:42 aktiv EX 3600
TTL munkamenet:42
INCR latogatok
CONFIG GET maxmemory-policy
DBSIZE

Az EX 3600 egy óra után lejáró kulcsot hoz létre, a TTL a hátralévő másodperceket mutatja. A Redis elsősorban gyorsítótár: az adatai a memóriában vannak, és csak időnként kerülnek lemezre, ezért fontos adatot ne csak itt tároljon.

Használat PHP-ból

A PHP Redis-bővítménye a Valkeyvel és a Redisszel is működik:

sudo dnf install php-pecl-redis6
sudo systemctl restart php-fpm

AlmaLinux 10-en a rendszer PHP 8.3-jához ez az AppStream tárolóból jön, a Remi PHP-hoz a Remi tárolóból. Próba:

php -r '$r = new Redis(); $r->connect("127.0.0.1", 6379); $r->auth("Hosszu-Egyedi-Jelszo"); $r->set("teszt", "mukodik"); echo $r->get("teszt"), PHP_EOL;'

A teszten a válasz mukodik volt. WordPressnél egy objektum-gyorsítótár bővítmény köti be a Redist; a beállításhoz a gazdagép 127.0.0.1, a port 6379, és a fenti jelszó kell. Hogy a gyorsítótár mennyit segít az adatbázison, arról az adatbázis-optimalizálásról szóló blogcikkünk ír.

Verzióváltás, eltávolítás

A Remi moduljai között ugyanúgy válthat, mint a PHP-nál (sudo dnf module switch-to redis:remi-8.6). Visszafelé, egy régebbi főverzióra ne váltson éles adatokkal: a régebbi Redis nem mindig tudja beolvasni az újabb által írt mentésfájlt (/var/lib/redis/dump.rdb), és indításkor hibával leáll. Ilyenkor térjen vissza az újabb verzióhoz, vagy ha csak gyorsítótár volt, mentse el és törölje a fájlt.

Eltávolítás (Valkeynél valkey):

sudo systemctl disable --now redis
sudo dnf remove redis redis-bloom redis-json redis-timeseries
sudo dnf module reset redis

A beállítások (/etc/redis/) és az adatok (/var/lib/redis/) ezután is a gépen maradhatnak; ha nincs rájuk szükség, mentés után törölje őket. Ha a vm.overcommit_memory beállítást csak a Redis miatt vette fel, a /etc/sysctl.d/90-redis.conf fájlt is törölheti.

Mennyi memória kell?

A Redis memóriaigénye a tárolt adatokon múlik. A pillanatnyi használatot a redis-cli INFO memory (used_memory_human sor) mutatja; néhány napos működés után ehhez igazítsa a maxmemory értékét. Ha a szervernek nem jut elég memória a webszerver, az adatbázis és a Redis mellett, nagyobb KVM VPS-csomagra válthat, vagy a Redist külön gépre teheti.

Vissza: Linux leírások (62)