you can use just one of them or both
the problem with pipeline is that it if queue is empty/smaller than pipeline count, then both redis and logstash will do extra work of returning nil values
the batch uses lua script which first gets the queue length and thus will return only what is needed
since lua is a transaction  and if you want to use large count it will block other clients , as redis is single threaded
so you can pipeline several eval requests - that's two size fatures :)
which combo to use depends on your redis queue workload
i was able to get a little better throughput using both in combination, than each one separately