Skip to content

Redis - Datenbanken löschen

Redis
  • Bei meiner Umorganisation, jedes Forum eine eigene DB, habe ich jetzt das kleine Problem gehabt, das in jeder DB beide Datenbanken drin sind. Unschön, das muss man ändern 😉

    Dazu erst mal beide Datenbanken kopiert, da wir hier eine Operation durchführen, die die Daten löscht. Also bitte an Datensicherungen denken!

    Wir wir uns zur DB connecten, kennen wir ja mittlerweile, jede DB läuft auf einem eigenen Port. Also müssen wir uns zwei mal connecten.

    redis-cli -h 10.10.0.155 -p 6379
    redis-cli -h 10.10.0.155 -p 6380
    

    Danach muss man sich so authentifizieren

    AUTH <password>
    

    Ein INFO gibt Euch viele Informationen über die DB, hier das Wichtigste

    INFO
    # Server
    redis_version:6.0.16
    ..
    # Clients
    connected_clients:3
    ..
    # Keyspace
    db0:keys=65947,expires=0,avg_ttl=0
    db1:keys=6791,expires=2894,avg_ttl=73471014
    

    Hier kann man jetzt sehen, das in der Redis-DB zwei Datenbanken gespeichert sind. Ich habe mir vorher alles aufgeschrieben, damit ich nicht durcheinander komme.

    Und weiter geht's. wir wählen die entsprechende DB aus.

    select 0
    

    Danach, löschen wir diese DB.

    FLUSHDB
    

    Danach habe ich wieder ein INFO augeführt

    ..
    # Keyspace
    db1:keys=6791,expires=2894,avg_ttl=74684837
    

    Man sieht, es ist nur noch eine DB vorhanden. Parrallel dazu habe ich das auf dem Server im Dateiverzeichnis beobachtet.

    Vor der Operation

    ls -lha
    insgesamt 74M
    drwxr-x---  2 redis redis 4,0K  7. Nov 08:15 .
    drwxr-xr-x 25 root  root  4,0K  5. Nov 15:39 ..
    -rw-rw----  1 redis redis  37M  7. Nov 08:15 dump.rdb
    -rw-r-----  1 root  root   37M  7. Nov 08:10 dump.rdb_BAK
    

    Danach

    ls -lha
    insgesamt 42M
    drwxr-x---  2 redis redis 4,0K  7. Nov 08:16 .
    drwxr-xr-x 25 root  root  4,0K  5. Nov 15:39 ..
    -rw-rw----  1 redis redis 4,8M  7. Nov 08:16 dump.rdb
    -rw-r-----  1 root  root   37M  7. Nov 08:10 dump.rdb_BAK
    

    Hier kann man jetzt sehen, das die DB Größe auf dem Datenträger sich verändert hat. Es ist nur noch das zweite Forum drin, was deutlich kleiner ist.

    Bitte daran denken, alle Änderungen die man macht passieren im Speicher. Die Datenbank wird nur alle paar Minuten auf den Datenträger geschrieben!

    Es kann also etwas dauern, bis man das also sieht. Danach das Ganze dann noch für die andere DB durchgeführt. Jetzt habe ich zwei Instanzen der Redis-Datenbank mit jeweils eigener DB. Ich erhoffe mir dadurch einen besseren Überblick, eine bessere Wartung und eine bessere Datensicherung.

    Als Nebeneffekt benutzt jetzt jede DB eine eigene CPU, wenn ich die Informationen im Netz richtig verstanden habe. Wobei das in meinem Anwendungsfall keine Bedeutung hat, dafür ist da einfach zu wenig los. Wenn man Foren mit tausenden Benutzern hätte, wäre das vermutlich extrem wichtig.