Typeclass for easy merging ("sequencing") of multiple RedisBatch instances into one. This is done in
order to guarantee that some set of operations is sent to Redis as a single batch (most likely single network
message).
The parameter Ops represents batches that will be sequenced into one. It may be a collection, a tuple or
any other "collection-like" type for which type class instance is provided.
Res is the type of result of the batch created by "sequencing". This type is automatically inferred from
the Ops type. For example, if Ops is (RedisBatch[Int], RedisBatch[String]) (tuple) then Res will be
(Int, String). If Ops is List[RedisBatch[Int]] then Res will be List[Int].
Nesting is also possible. For example, if Ops is (List[RedisBatch[Int]], RedisBatch[String]) then
Res will be (List[Int], String).
In order to perform "sequencing", simply call sequence
on your collection of batches, e.g.
import RedisApi.Batches.StringTyped._
val tupleBatch: RedisBatch[(Long, Opt[String])] = (incr("key1"), get("key2")).sequence
val listBatch: RedisBatch[List[Long]] = List("key1", "key2").map(key => incr(key)).sequence
Typeclass for easy merging ("sequencing") of multiple RedisBatch instances into one. This is done in order to guarantee that some set of operations is sent to Redis as a single batch (most likely single network message).
The parameter
Ops
represents batches that will be sequenced into one. It may be a collection, a tuple or any other "collection-like" type for which type class instance is provided.Res
is the type of result of the batch created by "sequencing". This type is automatically inferred from theOps
type. For example, ifOps
is(RedisBatch[Int], RedisBatch[String])
(tuple) thenRes
will be(Int, String)
. IfOps
isList[RedisBatch[Int]]
thenRes
will beList[Int]
.Nesting is also possible. For example, if
Ops
is(List[RedisBatch[Int]], RedisBatch[String])
thenRes
will be(List[Int], String)
.In order to perform "sequencing", simply call sequence on your collection of batches, e.g.