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.


$config[zx-auto] not found$config[zx-overlay] not found