Comprendere RESP: il protocollo dietro Redis

Nel mio post precedente, ho condiviso una panoramica del mio clone di Redis costruito con Node.js. Ora, voglio spiegare una parte fondamentale di questo progetto: RESP, ovvero il Redis Serialization Protocol.

Redis non riceve comodi array JavaScript. Riceve byte grezzi tramite un socket TCP. Per funzionare, questi byte hanno bisogno di una struttura. Il server deve sapere dove inizia e dove finisce un comando. Deve sapere quanti argomenti sono presenti e quanto è lungo ciascuno di essi.

RESP fornisce questa struttura. È il linguaggio che client e server usano per comunicare.

Ad esempio, il comando GET name appare così in RESP: *2\r\n$3\r\nGET\r\n$4\r\nname\r\n

Ecco la scomposizione:

  • *2 significa un array con 2 elementi.
  • $3 significa che la parte successiva è lunga 3 byte: GET.
  • $4 significa che la parte successiva è lunga 4 byte: name.

Il

Repo: https://github.com/Abhinov007/redis_clone Sandbox live: https://abhinov007.github.io/Redis_Clone/ Fonte: https://dev.to/abhinov007/understanding-resp-the-protocol-behind-redis-50p4