diff --git a/pipeline.go b/pipeline.go index b3a8844a..2714ceb8 100644 --- a/pipeline.go +++ b/pipeline.go @@ -8,6 +8,19 @@ import ( type pipelineExecer func([]Cmder) error +// Pipeliner is an mechanism to realise Redis Pipeline technique. +// +// Pipelining is a technique to extremely speed up processing by packing +// operations to batches, send them at once to Redis and read a replies in a +// singe step. +// See https://redis.io/topics/pipelining +// +// Pay attention, that Pipeline is not a transaction, so you can get unexpected +// results in case of big pipelines and small read/write timeouts. +// Redis client has retransmission logic in case of timeouts, pipeline +// can be retransmitted and commands can be executed more then once. +// To avoid this: it is good idea to use reasonable bigger read/write timeouts +// depends of your batch size and/or use TxPipeline. type Pipeliner interface { StatefulCmdable Do(args ...interface{}) *Cmd