Ищете лучший способ добавить новое поле во вложенный объект redis

#node.js #redis #nested-object

Вопрос:

Я использую пакет redis в узле js.

У меня есть поле блогов в моем redis, которое выглядит так:

 console.log((await redisClient.get('blogs')))
// results in something like this
{
  "615f20fee6ee6a760303dbbb": {
    "_id": "615f20fee6ee6a760303dbbb",
    "somefileds": "somevalues"
  },
  ... more stuff
}
 

Я написал функцию для кэширования новых блогов в redis, которая отлично работает, игнорируя проблемы с производительностью.

Я написал что-то вроде этого:

 const writeSingleBlogOnRedis = async blog => {
  const data = JSON.parse((await redisClient.get('blogs')))
  data[blog._id] = blog
  redisClient.set('blogs', JSON.stringify(data))
}
 

Идея состоит в том, что я получаю все старые данные и превращаю их в объект, затем добавляю в объект новый блог, строчуюобъект и добавляю его снова, что, как я знаю, является эффективным способом сделать это.

Я попытался использовать hset, мой код выглядит так:

 const writeSingleBlogOnRedis = blog => {

  redisClient.hset('blogs', blog._id, JSON.stringify(blog), (err, value) => {})
}
 

но это все ломает, и результат получения блогов (приведенная выше функция get) станет нулевым, что я делаю не так?

Комментарии:

1. oss.redis.com/redisjson