2012-01-24 13 views
21

Ho JSON (< 1k) per memorizzare in Redis attraverso node.js. Quali sono i pro e i contro di archiviarlo come oggetto o stringa? Ci sono altre opzioni che ho perso? In definitiva, tutto il processo avviene sul lato client, quindi la conversione in un oggetto non è necessaria.Come dovrei memorizzare JSON in redis?

SET

var images = JSON.parse(data);   // data is already JSON, is this needed? 
callback(images);      // sends result to the user 
r.set('images:' + req.query, images); // saving the object 

GET

callback(images); 

risposta

32

È possibile memorizzare JSON in Redis sia come stringa di pianura tasto dedicato (o di membro/valore di un insieme/lista) o in una struttura hash. Se si guarda alla node_redis docs in amichevole comandi hash parte vedrai che ti dà alcuni metodi utili per la manipolazione di dati basati JSON. A favore di questo approccio è che esso consente di ottenere/impostare solo una parte dell'oggetto originale e potrebbe anche consume less memory rispetto alle stringhe semplici.

+0

Grazie! Sembra che il cono della struttura hash sia che il recupero è molto più lento, dal momento che dovresti iterare attraverso ciascun campo per ricostruire l'originale. – tofutim

+1

È possibile recuperare l'intero hash con il comando HGETALL e anche se è il momento di complessità è O (n) Penso che le prestazioni sarebbero visibilmente influenzato solo con grandi quantità di coppie campo/valore. – yojimbo87

+1

Il collegamento per riendlier hash comandi https://github.com/mranney/node_redis#friendlier-hash-commands – ravindrab

Problemi correlati