override def get()

in storehaus-redis/src/main/scala/com/twitter/storehaus/redis/RedisStore.scala [61:81]


  override def get(k: Buf): Future[Option[Buf]] =
    client.get(k)

  override def multiGet[K1 <: Buf](
      ks: Set[K1]): Map[K1, Future[Option[Buf]]] = {
    val redisResult: Future[Map[K1, Future[Option[Buf]]]] = {
      // results are expected in the same order as keys
      // keys w/o mapped results are considered exceptional
      val keys = ks.toIndexedSeq.view
      client.mGet(keys).map { result =>
        val zipped = keys.zip(result).map {
          case (k, v) => k -> Future.value(v)
        }.toMap
        zipped ++ keys.filterNot(zipped.isDefinedAt).map { k =>
          k -> Future.exception(new MissingValueException(k))
        }
      }
    }
    FutureOps.liftValues(ks, redisResult, { (k: K1) => Future.value(Future.None) })
      .mapValues { _.flatten }
  }