Skip to content

NodeBB - Zwei Instanzen

Angeheftet NodeBB
  • Um Redis mit zwei unabhängigen Instanzen laufen zu lassen, habe ich diesen Beitrag erstellt. Damit haben wir jetzt zwei unabhängige Datenbanken und nicht eine Datenbank mit zwei Foren. Ich persönlich finde das angenehmer.

    Ok, nun wollen wir die Datenbanken ja auch mit NodeBB benutzen und brauchen zwei eigenständige Instanzen.

    Forum 1

    [Unit]
    Description=NodeBB
    Documentation=https://docs.nodebb.org
    After=system.slice multi-user.target mongod.service
    
    [Service]
    Type=forking
    User=user_forum1
    
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=nodebb
    
    WorkingDirectory=/home/forum1/nodebb
    PIDFile=/home/forum1/nodebb/pidfile
    ExecStart=/usr/bin/node loader.js
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    Forum 2

    [Unit]
    Description=NodeBB
    Documentation=https://docs.nodebb.org
    After=system.slice multi-user.target mongod.service
    
    [Service]
    Type=forking
    User=user_forum2
    
    StandardOutput=syslog
    StandardError=syslog
    SyslogIdentifier=nodebb
    
    WorkingDirectory=/home/forum2/nodebb
    PIDFile=/home/forum2/nodebb/pidfile
    ExecStart=/usr/bin/node loader.js
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    

    Ich denke, das sollten verständlich sein. Die beiden Files nach /etc/systemd/system und ausführbar machen

    chmod +x .....
    

    Ok, und die Datenbanken??

    In der config.json der NodeBB-Installation, kommt einmal das hier ein

        "redis": {
            "host": "127.0.0.1",
            "port": "6379",
    

    und einmal das hier

        "redis": {
            "host": "127.0.0.1",
            "port": "6380",
    

    Somit startet jede Instanz autark und benutzt seine eigene Redis-Datenbank.

  • FrankMF FrankM hat dieses Thema am angepinnt

  • Redis - Keys von einer DB zu einer anderen DB kopieren

    Redis
    1
    0 Stimmen
    1 Beiträge
    113 Aufrufe
    Niemand hat geantwortet
  • Redis ändert das Lizenz Modell

    Redis
    2
    0 Stimmen
    2 Beiträge
    124 Aufrufe
    FrankMF

    Ein Artikel von Heise zum Thema

    Link Preview Image Datenbankanbieter Redis ändert sein Lizenzmodell – erneut

    Die No-SQL-Datenbank wird künftig nach einem dualen Modell lizenziert: Redis Source Available License Version 2 oder Server-Side Public License Version 1.​

    favicon

    Developer (www.heise.de)

  • Python & Redis-Datenbank

    Verschoben Linux
    3
    0 Stimmen
    3 Beiträge
    115 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.

  • Nodebb - Embed

    NodeBB
    2
    0 Stimmen
    2 Beiträge
    81 Aufrufe
    FrankMF

    Bitte dazu auch diesen Beitrag lesen...

    Link Preview Image Nodebb - iframely

    Bei der Spielerei und der Recherche im Netz bin ich darüber gestolpert, das man das auch mit was anderem machen kann. Dieses Tool nennt sich iframely Diesen ...

    favicon

    linux-nerds.org (linux-nerds.org)

  • Redis - Fehler bei apt update && apt upgrade

    Redis
    1
    0 Stimmen
    1 Beiträge
    186 Aufrufe
    Niemand hat geantwortet
  • Redis - Sicherheitsupdate Debian

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

    Redis
    2
    0 Stimmen
    2 Beiträge
    856 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
  • Redis oder MongoDB?

    Verschoben Redis
    1
    0 Stimmen
    1 Beiträge
    481 Aufrufe
    Niemand hat geantwortet