Tout d'abord, redis ne prend en charge que les types de données suivants :
- Chaîne
- Liste
- Définir
- Hachage
- Ensemble trié
Vous devrez stocker des objets sous forme de chaîne dans les deux redis et memcaché.
node-memcached analyse/chaîne les données automatiquement. Mais node-redis pas.
Cependant, vous pouvez implémenter vos propres fonctions de sérialisation/désérialisation pour votre application.
La façon dont node-memcached stringifie un objet est la suivante :
if (Buffer.isBuffer(value)) {
flag = FLAG_BINARY;
value = value.toString('binary');
} else if (valuetype === 'number') {
flag = FLAG_NUMERIC;
value = value.toString();
} else if (valuetype !== 'string') {
flag = FLAG_JSON;
value = JSON.stringify(value);
}
Il analyse également le texte récupéré de cette manière :
switch (flag) {
case FLAG_JSON:
dataSet = JSON.parse(dataSet);
break;
case FLAG_NUMERIC:
dataSet = +dataSet;
break;
case FLAG_BINARY:
tmp = new Buffer(dataSet.length);
tmp.write(dataSet, 0, 'binary');
dataSet = tmp;
break;
}