>웹 프론트엔드 >JS 튜토리얼 >Node.js로 간단한 Redis 스토어 구축

Node.js로 간단한 Redis 스토어 구축

DDD
DDD원래의
2024-10-22 06:22:30792검색

Building a Simple Redis Store with Node.js

안녕 친구들! ?

저는 Node.js를 가지고 놀다가 Redis의 간단한 버전을 모방하는 가벼운 인메모리 키-값 저장소를 만들기로 결정했습니다. 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에서 수신 대기하고 SET, GETDELETE 명령에 응답합니다.
  • 매우 간단하고 간단합니다. Telnet이나 Netcat과 같은 TCP 클라이언트에서 명령을 보내고 명령이 실제로 실행되는 모습을 확인하세요!

? 사용 방법:

  1. 코드를 simpleRedis.js로 저장하세요.
  2. 단순Redis.js 노드로 실행하세요.
  3. 새 터미널을 열고 다음을 사용하여 연결하세요.
   telnet localhost 3001
  1. 이제 인메모리 키-값 저장소와 상호 작용할 수 있습니다!

예:

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

깃허브
한번 시도해 보세요! ? 여러분의 생각이나 이를 어떻게 확장할 것인지 알려주세요.


위 내용은 Node.js로 간단한 Redis 스토어 구축의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.