ホームページ  >  記事  >  ウェブフロントエンド  >  Node.js を使用したシンプルな Redis ストアの構築

Node.js を使用したシンプルな Redis ストアの構築

DDD
DDDオリジナル
2024-10-22 06:22:30713ブラウズ

Building a Simple Redis Store with Node.js

皆さん! ?

私は Node.js をいろいろ試してきましたが、Redis の単純なバージョンを模倣する軽量のメモリ内 Key-Value ストアを作成することにしました。 Node.js でネットワーキングを始めたいと考えている場合、または楽しいサイド プロジェクトを探索するのが好きな場合は、これが最適です!

?主な特徴:

  • サポートされるコマンド:
    • SET キー値 - キーと値のペアを保存します。
    • GET key - キーの値を取得します。
    • DELETE キー - キーと値のペアを削除します。
  • Node.js の net モジュールを使用して、クライアント接続を処理するための TCP サーバー を作成します。
  • 非常にシンプルな Redis ストアで、簡単なテストや TCP インタラクションの学習に最適です!

⚙️ コードの概要:

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');
});

?何が起こっていますか:

  • サーバーはポート 3001 で待機し、SETGET、および DELETE コマンドに応答します。
  • これは非常にシンプルで簡単です。Telnet や netcat などの TCP クライアントからコマンドを送信するだけで、コマンドの動作を確認できます。

? 試してみるには:

  1. コードを simpleRedis.js として保存します。
  2. ノード simpleRedis.js で実行します。
  3. 新しいターミナルを開き、以下を使用して接続します。
   telnet localhost 3001
  1. これで、メモリ内の Key-Value ストアを操作できるようになりました。

例:

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

Github
試してみてください! ?ご意見、またはこれをどのように拡張するか教えてください。


以上がNode.js を使用したシンプルな Redis ストアの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。