Minden törlése a Redisből
1. Áttekintés
A Redis gyorsítótárazásakor hasznos lehet az egész gyorsítótár törlése, ha érvénytelen lesz.
Ebben a rövid oktatóanyagban megtanulhatjuk, hogyan lehet törölni a Redis összes kulcsát, mind a speciális adatbázisokban, mind az összes adatbázisban.
Először megnézzük a parancssort. Ezután meglátjuk, hogyan lehet elérni ugyanazt a dolgot az API-k és a Java kliens segítségével.
2. Redis futása
Szükségünk lesz egy Redis-re, hogy működjünk együtt. A Redis gyorsindításában telepítési utasítások találhatók Mac és Linux rendszerekhez. Valószínűleg egyszerűbb Redist futtatni a dokkolóban.
Indítsunk egy teszt Redis szervert:
docker run - név redis -p 6379: 6379 -d redis: legújabb
És futhatunk redis-cli a szerver működésének teszteléséhez:
dokkoló exec -it redis redis-cli
Ez a cli héjba dob minket, ahol a parancs ping teszteli, hogy a szerver fent van-e:
127.0.0.1:6379> ping PONG
Kilépünk a redis-cli CTRL + C gombbal.
3. Redis parancsok
Kezdjük a Redis parancsokkal, hogy mindent töröljünk.
Két fő parancs van a Redisben található kulcsok törlésére: FLUSHDB és FLUSHALL. Használhatjuk a Redis CLI-t ezeknek a parancsoknak a végrehajtására.
A FLUSHDB parancs törli a kulcsokat egy adatbázisból. És a FLUSHALL parancs törli az összes kulcsot az összes adatbázisból.
Ezeket a műveleteket háttérszálon hajthatjuk végre a ASYNC választási lehetőség. Ez akkor hasznos, ha a flush sokáig tart, mint a parancs megadása ASYNC megakadályozza a blokkolást, amíg nem fejeződik be.
Meg kell jegyeznünk, hogy a ASYNC opció a Redis 4.0.0 verziótól érhető el.
4. Munka a Java klienssel
Most nézzük meg, hogyan lehet használni a Jedis Java klienst a kulcsok törléséhez.
4.1. Függőségek
Először hozzá kell adnunk Jedis Maven-függőségét:
redis.clients jedis 3.3.0
A tesztelés megkönnyítése érdekében használjunk egy beágyazott Redis szervert is:
com.github.kstyrc embedded-redis 0.6
4.2. Beágyazott Redis indítása
Létrehozunk egy beágyazott Redis szervert, amellyel tesztelhetünk, egy elérhető porton futtatva:
RedisService redisServer = új RedisServer (port);
Ezután létrehozzák Jedis ügyfelünket helyi kiszolgáló állomásnévként, és ugyanaz a port:
Jedis jedis = új Jedis ("localhost", port);
5. Egyetlen adatbázis öblítése
Helyezzünk néhány adatot az adatbázisba, és ellenőrizzük, hogy emlékeznek-e rá:
Karaktersorozat = "kulcs"; Karaktersorozat = "érték"; jedis.set (kulcs, érték); String kapott = jedis.get (kulcs); assertEquals (érték, kapott);
Most nézzük öblítse le az adatbázist a flushDB módszer:
jedis.flushDB (); assertNull (jedis.get (kulcs));
Amint láthatjuk, az öblítés után az érték lekérésének megkísérlése visszatér nulla.
6. Az összes adatbázis törlése
A Redis több adatbázist biztosít, amelyek számozva vannak. Adatokat adhatunk különböző adatbázisokhoz a válassza parancs mielőtt hozzáadnánk az értékeinket:
jedis.select (0); jedis.set ("kulcs1", "érték1"); jedis.select (1); jedis.set ("kulcs2", "érték2");
Most két kulcsunknak egy-egy kulcsot kell tartalmaznunk:
jedis.select (0); assertEquals ("érték1", jedis.get ("kulcs1")); assertNull (jedis.get ("kulcs2")); jedis.select (1); assertEquals ("érték2", jedis.get ("kulcs2")); assertNull (jedis.get ("kulcs1"));
A flushDB módszer csak az aktuális adatbázist törli. Az összes adatbázis törléséhez az flushAll módszer:
jedis.flushAll ();
Kipróbálhatjuk, hogy ez bevált-e:
jedis.select (0); assertNull (jedis.get ("kulcs1")); assertNull (jedis.get ("kulcs2")); jedis.select (1); assertNull (jedis.get ("kulcs1")); assertNull (jedis.get ("kulcs2"));
7. Az idő komplexitása
A Redis egy gyors adattár, amely jól méretezhető. Az öblítési műveletek azonban hosszabb időt vehetnek igénybe, ha több adat van.
Az idő összetettsége FLUSHDB művelet az TOVÁBB), hol N az adatbázis kulcsainak száma. Ha a FLUSHALL parancsot, az idő bonyolultsága megint TOVÁBB), de itt, N a kulcsok száma az összes adatbázisban.
8. Következtetés
Ebben a cikkben láttuk, hogyan kell futtatni a Redist és a redis-cli a Docker programban, és a Jedis kliens Java használatához beágyazott Redis szerverrel.
Láttuk, hogyan kell az adatokat a Redis különböző adatbázisaiban tartani, és hogyan használhatjuk az öblítési parancsokat egy vagy több törléséhez.
Mint mindig, a cikk forráskódja is elérhető a GitHubon.