[[oktatas:adatbázis-kezelés|< Adatbázis-kezelés]]
====== Redis ======
* **Szerző:** Sallai András
* Copyright (c) 2024, Sallai András
* Szerkesztve: 2024
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== A Redis-ről =====
A Redis egy kulcs-érték alapú NoSQL adatbázis rendszer.
* https://redis.io/
===== Docker compose =====
version: '3.8'
services:
redis:
image: redis:latest
container_name: redis
restart: always
ports:
- '6379:6379'
volumes:
- ./data:/data
environment:
- ALLOW_EMPTY_PASSWORD=yes
Csatlakozás:
docker exec -it redis bash
De indíthatjuk a redis-cli parancsot is.
Jelszavak
environment:
- REDIS_PASSWORD=titok
- REDIS_PORT=6379
- REDIS_DATABASES=16
==== redis-cli indítás ====
Indítsuk el konténerben futó redis-cli-t:
docker exec -it redis redis-cli
Ehhez hasonlót kell látni:
$ docker exec -it redis redis-cli
127.0.0.1:6379> ping
PONG
===== redis-cli =====
Kilépés:
exit
A szerver elérhetőségének tesztelése:
127.0.0.1:6379> ping
PONG
Ha meg jön a válasz "PONG" szöveggel, akkor elérhető.
Kulcs lekérdezése:
get nev
Az eredmény: (nil)
Most állítsunk be egy nevet:
set nev Béla
Most kérdezzük le:
get nev
Az eredmény:
"B\xc3\xa9la"
Ha normál karakterként szeretnénk látni, indítsuk így a redis-cli-t:
ridis-cli --raw
==== Ha még nem létezik ====
Állítsuk be, ha még nem létezik:
setnx nev "János"
==== Létezés vizsgálata ====
exists nev
==== Törlés ====
del nev
==== Számláló ====
Állítsunk be egy számot:
set counter 1
Kérdezzük le:
get counter
Növeljük az értékét:
incr counter
Növeljük 5-tel az értéket:
incrby counter 5
==== Lejárat ====
20 másodperc múlva törlődjön a kulcs-érték:
expire nev 20
Hány másodperc múlva jár le:
ttl nev
==== Lista ====
rpush nevLista "Béla"
rpush nevLista "Géza"
Lista mérete:
llen nevLista
Lista tartalma 0 indextől az utolsóig:
lrange nevLista 0 -1
A listába balról is tehetünk elemeket:
lpush nevLista "Imre"
Egyszerre több elem:
rpush szamLista 35 22 47 28
rpush nevLista "Feri" "Dani"
Az első elem kivétele:
lpop nevLista
Az utolsó elem kivétele:
rpop nevLista
==== Több utasítás együtt ====
127.0.0.1:6379> multi
OK
127.0.0.1:6379(TX)> set nev Mari
QUEUED
127.0.0.1:6379(TX)> set kor 35
QUEUED
127.0.0.1:6379(TX)> exec
OK
OK
127.0.0.1:6379>
===== Függelék =====
==== Másik dokcker-compose példa ====
version: '3.8'
services:
cache:
image: redis:6.2-alpine
container_name: redis
restart: always
ports:
- '6379:6379'
command: redis-server --save 20 1 --loglevel warning --requirepass titok
volumes:
- cache:/data
volumes:
cache:
driver: local