Приведенное ниже решение не решает весь смысл использования redis - для обмена данными между экземплярами кластера. Хранение идентификатора конкретного экземпляра в Redis будет бессмысленным для другого экземпляра, который пытается использовать этот идентификатор.
Однако, есть «hmset», который можно вызвать с объектом, и он установит каждое поле объекта как отдельное поле redis в том же ключе. И он будет преобразован обратно в объект при вызове hgetall. К сожалению, я не думаю, что он обрабатывает вложенные объекты или массивы внутри объекта, только простые свойства, значения которых могут быть сохранены с помощью "toString ()".
Итак, объект типа
client.hmset("myhashkey",{a:1, b:2, c:'xxx'})
прекрасно работает и может быть восстановлен с помощью
client.hmget("myhashkey", function(obj) {
console.log(obj);
});
Не так много для:
client.hmset("myhashkeynested",{a:1, b:2, c:'xxx', d: { d1: 'x', d2: 'y'}});