Нещото, което открих, че работи, беше съхраняването на ключа като уникален идентификатор и низовизиране на целия обект, докато съхранявам данните и прилагане на JSON.parse при извличането им.
Примерен код:
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;
});
Въпреки че стрифифицирането и след това анализирането му обратно е изчислително тежка операция и ще блокира сървъра Node.js, ако размерът на JSON стане голям. Вероятно съм готов да поема удар за по-малка сложност, защото знам, че моят JSON няма да е голям, но това трябва да се има предвид, докато се използва този подход.