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
    

  • Redis ConnectionPool

    Redis
    2
    0 Stimmen
    2 Beiträge
    79 Aufrufe
    FrankMF

    Die Antwort von ChatGPT wie der Redis ConnectionPool funktioniert. Ein paar Dinge finde ich komisch.

    Link Preview Image ChatGPT

    ChatGPT is a free-to-use AI system. Use it for engaging conversations, gain insights, automate tasks, and witness the future of AI, all in one place.

    favicon

    (chat.openai.com)

  • Redis - Datenbank Zugriff mit Python

    Redis
    3
    0 Stimmen
    3 Beiträge
    99 Aufrufe
    FrankMF

    Ich bin mit der Lernkurve noch nicht so richtig zufrieden. Eine Frage die sich mir stellte, geht das einfacher? Der Ursprung meiner Datenbank Struktur liegt in einem anderen Projekt, wo ich versucht habe Daten permanent in einem File zu speichern. Dazu hatte ich damals JSON genommen. Deswegen auch diese Zeilen

    self.project = str(db_client.json().get('settings', '$..project')[0]) or self.project

    Gut, ich hatte dann mal ChatGPT gefragt, wie macht man das so 'normalerweise'? es kam eine Klasse heraus, die ich dann intensiv ausprobiert habe, ein wenig umgebaut usw. So lange, bis ich der Meinung war, ok ich habe es verstanden. Jetzt nutzte der Code auch mehr Redis Funktionen, wie

    self.client.hset('settings', name, json.dumps(data))

    Es waren jetzt folgende Funktionen drin

    hset hexists hdel hget

    Dokumentation -> https://redis.io/commands/hset/

    Beim Durchlesen des Codes hatte ich jetzt mehr das Gefühl, so muss das sein 🙂

    In RedisInsight sieht das dann jetzt so aus.

    393195f7-1017-4285-8fca-734ee6b4bff7-grafik.png

    Klasse class PortfolioSettings: def __init__(self, host='172.17.0.2', port=6379, db=0): if args.test_mode == 1: self.client = redis.StrictRedis(host=SERVER_IP, port=port, db=TEST[0]) else: self.client = redis.StrictRedis(host=SERVER_IP, port=port, db=LIVE[0]) def set_settings(self, name, data): """Init settings if db don't exist""" if not self.client.hexists('settings', name): self.client.hset('settings', name, json.dumps(data)) return True return False def edit_setting(self, name, data): """Edit an entry in settings""" if self.client.hexists('settings', name): self.client.hset('settings', name, json.dumps(data)) return True return False def delete_setting(self, name): """Delete an entry in settings""" return self.client.hdel('settings', name) def get_setting(self, name): """Get an entry in settings""" setting = self.client.hget('settings', name) return json.loads(setting) if setting else None def get_all_settings(self): """Get all entries in settings""" settings = self.client.hgetall('settings') return {k.decode(): json.loads(v) for k, v in settings.items()}

    Und hier die Initialisierung

    settings_data = PortfolioSettings() ##################### # Will only be executed if DB is not available! ##################### if not settings_data.get_all_settings(): # Settings initialisieren print("INIT") settings_data.set_settings("project", "Portfolio") settings_data.set_settings("version", "0.0.3") settings_data.set_settings("theme", "dark") settings_data.set_settings("url_list", ["https://www.onvista.de/aktien/Deutsche-Telekom-Aktie-DE0005557508"]) settings_data.set_settings("exchange_list", ['DKB','Smartbroker','BUX'])

    Teile der Klasse sind [KI-generiert]

    Ich war zufrieden und habe die Klasse dann in mein Projekt übernommen und den Code überall entsprechend angepasst.

  • Quartz64 - dts File bearbeiten

    Angeheftet Verschoben Quartz64
    3
    0 Stimmen
    3 Beiträge
    267 Aufrufe
    FrankMF

    Ich weiß nicht, wonach ich gesucht habe, vermutlich nach

    apt install device-tree-compiler

    das gibt es im Manjaro Image nicht, es heißt ganz einfach dtc 😎 Also, ganz einfach mit

    pacman -S dtc

    installieren. Dann kann man sich diesen Umweg mit snapd sparen.

  • Redis oder MongoDB?

    Verschoben Redis
    1
    0 Stimmen
    1 Beiträge
    461 Aufrufe
    Niemand hat geantwortet
  • Cups Druckdaemon

    Linux
    1
    0 Stimmen
    1 Beiträge
    370 Aufrufe
    Niemand hat geantwortet
  • tmate - Instant terminal sharing

    Linux
    2
    0 Stimmen
    2 Beiträge
    524 Aufrufe
    FrankMF

    Heute mal wieder benutzt, um bei meinem Bruder auf der Kiste nach dem Rechten zu schauen. Absolut genial.

    Sollte man evt. nicht zu "geheime" Sachen drüber schicken (meine die Leitung), aber für ein wenig Service ist das Tool wirklich super zu gebrauchen. 👍

  • NVMe Firmware - Daten werden benötigt

    Linux
    1
    0 Stimmen
    1 Beiträge
    702 Aufrufe
    Niemand hat geantwortet
  • NodeBB & Redis Datenbank vom Server sichern!

    Verschoben Redis
    2
    0 Stimmen
    2 Beiträge
    287 Aufrufe
    FrankMF

    Bei Serverumzug daran denken, das das Passwort der Redis Datenbank in der Konfig

    /etc/redis/redis.conf

    und in der NodeBB Konfig

    /home/user_nodebb/nodebb/config.json

    zu ändern ist.