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
    

  • Restic v0.16.5 released

    Restic restic linux
    1
    0 Stimmen
    1 Beiträge
    137 Aufrufe
    Niemand hat geantwortet
  • Redis - Datenbank Zugriff mit Python

    Redis redis python
    3
    1
    0 Stimmen
    3 Beiträge
    194 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. [image: 1695479582374-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.
  • FrOSCon 18 - Bericht

    Linux froscon linux
    2
    1
    0 Stimmen
    2 Beiträge
    576 Aufrufe
    FrankMF
    Und man soll ja auch was mitnehmen.... [image: 1691603320257-screenshot_20230809_194620.png] Das ist Semaphore, installiert in einer VM auf meinem Proxmox.
  • checkmk - Debian Bullseye Release

    checkmk checkmk bullseye linux
    1
    0 Stimmen
    1 Beiträge
    319 Aufrufe
    Niemand hat geantwortet
  • Mainline 5.11.x

    Images linux rockpro64
    1
    0 Stimmen
    1 Beiträge
    251 Aufrufe
    Niemand hat geantwortet
  • Mobian - vollverschlüsselt

    Software pinephone mobian linux
    1
    0 Stimmen
    1 Beiträge
    299 Aufrufe
    Niemand hat geantwortet
  • checkmk - Dockerinstallation

    Verschoben checkmk checkmk linux
    9
    2
    0 Stimmen
    9 Beiträge
    1k Aufrufe
    FrankMF
    Und noch was Wichtiges. [image: 1628408271316-6777da6e-3b4f-41b9-bf6e-26496ae67cd8-grafik.png] Damit sichert man den Datenaustausch ab. Kapitel 7.4. Inbuilt encryption Den Ordner findet man hier -> /etc/check_mk/encryption.cfg
  • tmate - Instant terminal sharing

    Linux linux
    2
    0 Stimmen
    2 Beiträge
    602 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.