[[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