Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Armazenando objetos javascript aninhados em redis - NodeJS


Em primeiro lugar, o redis suporta apenas os seguintes tipos de dados:
  1. Sequência
  2. Lista
  3. Definir
  4. Hash
  5. Conjunto ordenado

Você precisará armazenar objetos como string em ambos os redis e memcached.

node-memcached analisa/stringifica os dados automaticamente. Mas node-redis não.

No entanto, você pode implementar suas próprias funções de serialização/desserialização para seu aplicativo.

A maneira como o node-memcached stringifies um objeto é o seguinte:
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);
}

Ele também analisa o texto recuperado desta maneira:
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;
}