Use pipeline for _set

This reduces the number of connections used, as every command takes a connection from the pool and returns it afterwards.
Tests passing