sql >> Base de Datos >  >> NoSQL >> Redis

¿Cómo almacenar una matriz de objetos en Redis?

Lo que encontré funcionando fue almacenar la clave como un identificador único y encadenar todo el objeto mientras almacenaba los datos y aplicaba JSON.parse mientras lo extraía.

Código de ejemplo:

client
    .setAsync(obj.deviceId.toString(), JSON.stringify(obj))
    .then((doc) => {
        return client.getAsync(obj.deviceId.toString());
    })
    .then((doc) => {
        return JSON.parse(doc);
    }).catch((err) => {
        return err;
    });

Aunque encadenar y luego analizarlo de nuevo es una operación computacionalmente pesada y bloqueará el servidor Node.js si el tamaño de JSON se vuelve grande. Probablemente estoy listo para recibir un golpe de menor complejidad porque sé que mi JSON no sería enorme, pero eso debe tenerse en cuenta al optar por este enfoque.