Heim  >  Artikel  >  Web-Frontend  >  Erstellen eines einfachen Redis-Stores mit Node.js

Erstellen eines einfachen Redis-Stores mit Node.js

DDD
DDDOriginal
2024-10-22 06:22:30713Durchsuche

Building a Simple Redis Store with Node.js

Hey Freunde! ?

Ich habe mit Node.js herumgespielt und beschlossen, einen leichten In-Memory-Schlüsselwertspeicher zu erstellen, der eine einfache Version von Redis nachahmt. Wenn Sie mit dem Networking in Node.js beginnen möchten oder einfach gerne lustige Nebenprojekte erkunden möchten, ist dies das Richtige für Sie!

? Hauptmerkmale:

  • Unterstützte Befehle:
    • Schlüsselwert festlegen – Schlüssel-Wert-Paare speichern.
    • GET key – Rufen Sie den Wert eines Schlüssels ab.
    • DELETE-Schlüssel – Entfernen Sie ein Schlüssel-Wert-Paar.
  • Verwendet das Net-Modul von Node.js, um einen TCP-Server für die Handhabung von Client-Verbindungen zu erstellen.
  • Ein wirklich einfacher Redis-Store, ideal für schnelle Tests oder das Erlernen von TCP-Interaktionen!

⚙️ Code-Übersicht:

const net = require('net');

class SimpleRedis {
  constructor() {
    this.store = {};
  }

  set(key, value) {
    this.store[key] = value;
  }

  get(key) {
    return this.store[key] || null;
  }

  delete(key) {
    delete this.store[key];
  }
}

// Initialize store
const store = new SimpleRedis();

// Create a TCP server
const server = net.createServer((socket) => {
  console.log('Client connected');

  socket.on('data', (data) => {
    const command = data.toString().trim().split(' ');
    const action = command[0].toUpperCase();

    let response = '';

    switch (action) {
      case 'SET':
        const [key, value] = command.slice(1);
        store.set(key, value);
        response = `>> OK\n`;
        break;
      case 'GET':
        const keyToGet = command[1];
        const result = store.get(keyToGet);
        response = result ? `>> ${result}\n` : '>> NULL\n';
        break;
      case 'DELETE':
        const keyToDelete = command[1];
        store.delete(keyToDelete);
        response = `>> OK\n`;
        break;
      default:
        response = '>> Invalid command\n';
    }

    // Send the response with '>>'
    socket.write(response);
  });

  socket.on('end', () => {
    console.log('Client disconnected');
  });
});

// Start the server on port 3001
server.listen(3001, () => {
  console.log('Server is running on port 3001');
});

? Was passiert:

  • Der Server überwacht Port 3001 und antwortet auf die Befehle SET, GET und DELETE.
  • Es ist ganz einfach und unkompliziert – senden Sie einfach einen Befehl von einem beliebigen TCP-Client wie Telnet oder Netcat und sehen Sie Ihre Befehle in Aktion!

? Zum Ausprobieren:

  1. Speichern Sie den Code als simpleRedis.js.
  2. Führen Sie es mit dem Knoten simpleRedis.js aus.
  3. Öffnen Sie ein neues Terminal und stellen Sie eine Verbindung zu diesem her, indem Sie Folgendes verwenden:
   telnet localhost 3001
  1. Jetzt können Sie mit Ihrem In-Memory-Schlüsselwertspeicher interagieren!

Zum Beispiel:

SET name Hoang
GET name
>> Hoang
DELETE name
GET name
>> NULL

Github
Probieren Sie es aus! ? Lassen Sie mich wissen, was Sie denken oder wie Sie dies erweitern würden.


Das obige ist der detaillierte Inhalt vonErstellen eines einfachen Redis-Stores mit Node.js. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn