Odstrániť všetko v Redis

1. Prehľad

Pri ukladaní do vyrovnávacej pamäte v Redise môže byť užitočné vyčistiť celú vyrovnávaciu pamäť, keď sa stane neplatnou.

V tomto krátkom tutoriáli sa dozvieme, ako odstrániť všetky kľúče prítomné v Redise, a to v konkrétnych databázach aj vo všetkých databázach.

Najskôr sa pozrieme na príkazový riadok. Potom uvidíme, ako dosiahnuť to isté pomocou rozhraní API a klienta Java.

2. Beh Redis

Na prácu budeme potrebovať inštaláciu Redis. V rýchlom štarte Redis sú pokyny na inštaláciu pre Mac a Linux. Pravdepodobne je jednoduchšie spustiť Redis v doku.

Spustíme testovací server Redis:

docker run --name redis -p 6379: 6379 -d redis: najnovšie

A môžeme bežať redis-cli na otestovanie, či tento server funguje:

docker exec -it redis redis-cli

To nás pustí do shellu cli, kde je príkaz ping otestuje, či je server hore:

127.0.0.1:6379> ping PONG

Vychádzame z redis-cli pomocou CTRL + C.

3. Príkazy Redis

Začnime príkazmi Redis, aby sme všetko odstránili.

Existujú dva hlavné príkazy na odstránenie kľúčov prítomných v Redis: FLUSHDB a FLUSHALL. Na vykonávanie týchto príkazov môžeme použiť rozhranie CLI Redis.

The FLUSHDB príkaz odstráni kľúče z databázy. A FLUSHALL príkaz vymaže všetky kľúče vo všetkých databázach.

Tieto operácie môžeme vykonať v vlákne na pozadí pomocou ASYNC možnosť. To je užitočné, ak je vykonanie príkazu dlho potrebné ASYNC zastaví blokovanie, kým nebude úplné.

Mali by sme poznamenať, že ASYNC táto možnosť je k dispozícii od Redis 4.0.0.

4. Práca s klientom Java

Teraz sa pozrime, ako používať klienta Java Jedis na mazanie kľúčov.

4.1. Závislosti

Najprv budeme musieť pridať závislosť Maven pre Jedis:

 redis.clients jedis 3.3.0 

Aby sme uľahčili testovanie, použite aj zabudovaný server Redis:

 com.github.kstyrc vložený-redis 0,6 

4.2. Spustenie vloženého Redis

Vytvoríme zabudovaný server Redis, s ktorým budeme testovať, a to tak, že ho spustíme na dostupnom porte:

RedisService redisServer = nový RedisServer (port);

Náš klient Jedis je potom vytvorený pomocou localhost ako názov hostiteľa a rovnaký port:

Jedis jedis = nový Jedis ("localhost", port);

5. Prepláchnutie jednej databázy

Poďme vložiť nejaké údaje do databázy a skontrolovať, či sú zapamätané:

Reťazec key = "kľúč"; Hodnota reťazca = "hodnota"; jedis.set (kľúč, hodnota); Reťazec prijatý = jedis.get (kľúč); assertEquals (hodnota, prijaté);

Teraz poďme vypláchnite databázu pomocou flushDB metóda:

jedis.flushDB (); assertNull (jedis.get (kľúč));

Ako vidíme, pokus o získanie hodnoty po vyprázdnení sa vráti nulový.

6. Vymazanie všetkých databáz

Redis poskytuje viac databáz, ktoré sú očíslované. Môžeme pridávať údaje do rôznych databáz pomocou vyberte príkaz než pridáme naše hodnoty:

jedis.select (0); jedis.set ("key1", "value1"); jedis.select (1); jedis.set ("key2", "value2");

Teraz by sme mali mať jeden kľúč v každej z našich dvoch databáz:

jedis.select (0); assertEquals ("hodnota1", jedis.get ("kľúč1")); assertNull (jedis.get ("key2")); jedis.select (1); assertEquals ("hodnota2", jedis.get ("kľúč2")); assertNull (jedis.get ("key1"));

The flushDB metóda vymaže iba aktuálnu databázu. Na vyčistenie všetkých databáz používame flushAll metóda:

jedis.flushAll ();

Môžeme vyskúšať, že to fungovalo:

jedis.select (0); assertNull (jedis.get ("key1")); assertNull (jedis.get ("key2")); jedis.select (1); assertNull (jedis.get ("key1")); assertNull (jedis.get ("key2"));

7. Časová zložitosť

Redis je rýchle úložisko dát, ktoré je dobre škálovateľné. Vyplachovacie operácie však môžu trvať dlhšie, keď je k dispozícii viac údajov.

Časová zložitosť FLUSHDB prevádzka je O (N), kde N je počet kľúčov v databáze. Ak použijeme FLUSHALL príkaz, časová zložitosť je opäť O (N), ale tu, N je počet kľúčov vo všetkých databázach.

8. Záver

V tomto článku sme videli, ako spustiť Redis and the redis-cli v Dockeri a ako používať klienta Jedis pre Java so zabudovaným serverom Redis.

Videli sme, ako uchovávať údaje v rôznych databázach Redis a ako pomocou príkazov flush vyčistiť jednu alebo viac z nich.

Zdrojový kód tohto článku je ako vždy k dispozícii na serveri GitHub.


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