Самый эффективный способ установить и получить значения, на которые есть ссылки в наборе Redis - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть набор, который содержит ссылку на хэш-ключи.

mySet: [key1, key2, key3]
key1: {heading: "Heading1", event: "done"}
key2: {heading: "Heading2", event: "save"}
key3: {heading: "Heading3", event: "upload"}

На основе всех ссылок в наборе мне нужно изменить / обновить событие для каждого ключа и одновременно получитьзначение ключа для обновления сокета.

Какой самый эффективный способ сделать это?Используя node_redis, я попытался это сделать, но меня особенно беспокоит потенциальная нагрузка на смберы и множественные вызовы hgetall.Есть ли лучший способ сделать это?

redis.smembers(mySet, (err, keys) => {
    const updateValues = []

    for (const key of keys) {          
      updateValues.push(['hset', mySet, 'event', "finished"])

      redis.hgetall(key, (err, res) => {
         res.event = "finished"    
         sendToSocket(key, res)
      }
    }

    redis.multi(updateValues)
      .exec((err, replies) => {
        console.log('done')
      })
  })
...