Skip to content

Redis installieren

Angeheftet Verschoben Redis
  • Was ist Redis?

    Redis ist eine in-memory Datenbank, sprich das ist eine große Datei, die komplett im Speicher liegt. Das beschleunigt die Zugriffe usw. Von Zeit zu Zeit wird diese dann auf die Festplatte gespeichert.

    Installation Redis Server

    apt-get install redis-server
    

    Auf dem ROCKPro64 mit dem bionic-minimal Image vom Kamil bekommt man dann eine noch ausreichend aktuelle Version.

    rock64@rp64_nextcloud:~/nodebb$ redis-server --version
    Redis server v=4.0.9 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=76095d16786fbcba
    

    Old (4.0)
    Redis 4.0 was released as GA in July 2017, newcomers should use Redis 5, but Redis 4 is currently the most production-proven release and will be updated for the next year until Redis 6 will be out.

    Konfigurationsfile

    Das Konfigurationsfile File findet man unter /etc/redis/

    Wichtig! Im File redis.conf findet man folgende Zeile

    #requirepass foobar
    

    Die ändern wir in

    requirepass password
    

    Den Server neustarten.

    service redis restart
    

    Somit ist die Datenbank mit einem Passwort abgesichert.

    Version abfragen

    redis-server --version
    

    Datenbank

    Wo findet man die Datenbank? Die Datei heißt dump.rdb, zu finden unter /var/lib/redis

    root@rp64_nextcloud:/var/lib/redis# ls -la
    total 7056
    drwxr-x---  2 redis redis    4096 Mär  3 12:13 .
    drwxr-xr-x 29 root  root     4096 Mär  2 12:52 ..
    -rw-rw----  1 redis redis   35298 Mär  2 14:20 dump.BAK
    -rw-rw----  1 redis redis 7177881 Mär  3 12:13 dump.rdb
    

    Oben ist noch eine Datenbank drin, dump.BAK die ich als Datensicherung angelegt habe.

    Redis selber kompilieren

    Sollte die Version zu alt sein, kann man sich das auch eben selber kompilieren.

    wget http://download.redis.io/releases/redis-5.0.3.tar.gz
    tar xzf redis-5.0.3.tar.gz
    cd redis-5.0.3
    make
    

    Danach findet man das Ergebnis im Verzeichnis src
    https://redis.io/download

    Redis-Cli

    Redis kann man über eine Kommandozeile steuern. Dafür dient das Programm redis-cli

    root@server ~ # redis-cli
    127.0.0.1:6379> AUTH PASSWORD
    OK
    127.0.0.1:6379> INFO
    # Server
    redis_version:5.0.3
    .
    .
    .
    

    Mit INFO werden einem auch die Pfade angezeigt, wo die wichtigsten Dateien liegen.

    executable:/usr/bin/redis-server
    config_file:/etc/redis/redis.conf
    

  • Plasma 6

    Linux
    1
    0 Stimmen
    1 Beiträge
    66 Aufrufe
    Niemand hat geantwortet
  • Firefox 122 als .deb Paket

    Linux
    1
    0 Stimmen
    1 Beiträge
    103 Aufrufe
    Niemand hat geantwortet
  • Redis Insight - Desktop UI

    Redis
    1
    0 Stimmen
    1 Beiträge
    74 Aufrufe
    Niemand hat geantwortet
  • Python & Redis-Datenbank

    Verschoben Linux
    3
    0 Stimmen
    3 Beiträge
    94 Aufrufe
    FrankMF

    Heute dann die nächste Herausforderung. Mein JSON soll so aussehen, damit ich das entsprechend erweitern kann.

    Stocks {0: {'stockname': 'Deutsche Telekom Aktie', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 100}, 1: {'stockname': 'Henkel', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 50}}

    Die Daten sollen wie oben schon ausprobiert, in einer Redis Datenbank liegen. So weit auch kein großes Problem. ABER, der Zugriff auf diese Daten war dann meine nächste Hürde 🙂

    Ok, ich habe also mehrere Einträge im JSON File bzw. in der Datenbank. Wie komme ich da nun wieder dran. Ein paar ☕ später dann die Lösung.

    Wie komme ich an den einzelnen Eintrag, also über den Index??

    r1.json().get('stocks', 1)

    Gibt als Ergebnis

    {'stockname': 'Henkel', 'wkn1': '4534543534', 'wkn2': 'sfsdfsdfsfdfd', 'quantity': 50}

    Ok, das passt schon mal. Somit kann man dann gewohnt auf die einzelnen Elemente zugreifen.

    print("TESTING", testing['stockname'])

    Ausgabe

    TESTING Henkel

    Ok, Teil 1 erledigt. Jetzt habe ich ja irgendwann mehrere Elemente in der Liste und brauch dann den letzten Index , um damit was machen zu können. Also, z.B. durch die Daten zu loopen.

    objkeys = r1.json().objkeys('stocks') print("Objkeys", objkeys)

    Ausgabe

    Objkeys ['0', '1']

    Ok, kommt eine Liste des Index zurück. Damit kann man arbeiten 😉

    Ich hatte dann zum Testen mittels einer while Schleife die Daten geladen, aber jetzt beim Tippen klingelt es und wir machen das schön mit enumerate 😉

    @staticmethod def load(): data = {} for count, value in enumerate(objkeys): testing = r1.json().get('stocks', count) data[count] = { "stockname": testing['stockname'], "wkn1": testing['wkn1'], "wkn2": testing['wkn2'], "quantity": testing['quantity']} return data

    Somit habe ich die Daten aus der Redis Datenbank in einem Objekt und kann damit arbeiten.

  • NanoPi R5S - Samba

    NanoPi R5S
    5
    0 Stimmen
    5 Beiträge
    254 Aufrufe
    FrankMF

    Test zu dem NFS Mount (240GB USB SSD an USB-Port)

    [frank-ms7c37 nfs]# dd if=/dev/zero of=sd.img bs=1M count=2048 oflag=direct,nonblock 2048+0 Datensätze ein 2048+0 Datensätze aus 2147483648 Bytes (2,1 GB, 2,0 GiB) kopiert, 20,0851 s, 107 MB/s

    Test zum NAS Mount (Samba) (2TB 2,5Zoll HDD am USB-Port)

    [frank-ms7c37 NAS]# dd if=/dev/zero of=sd.img bs=1M count=2048 oflag=direct,nonblock 2048+0 Datensätze ein 2048+0 Datensätze aus 2147483648 Bytes (2,1 GB, 2,0 GiB) kopiert, 21,4538 s, 100 MB/s

    Das für den NAS Mount (Samba) sollte die maximal Schreibgrenze der Festplatte sein. Mehr dürfte da nicht gehen. Das andere könnte an den Adaptern liegen, die ich dafür benutze.

    Bei mir ist NFS hier aktuell nicht viel schneller, oder ich bin zu doof dafür.

  • Redis - Zweite Instanz

    Redis
    1
    0 Stimmen
    1 Beiträge
    169 Aufrufe
    Niemand hat geantwortet
  • Redis - Datenbank extern

    Redis
    2
    0 Stimmen
    2 Beiträge
    811 Aufrufe
    FrankMF

    Das habe ich doch oben vergessen reinzuschreiben, also wenn man das mal von extern testen muss um zu schauen ob die Verbindung geht. Keine Firewall blockt usw. dann kann man das ganz einfach so machen.

    root@webserver:~# redis-cli -h 10.10.1.10 -p 6379 10.10.1.10:6379> quit
  • 0 Stimmen
    1 Beiträge
    778 Aufrufe
    Niemand hat geantwortet