Transactions¶
When you talk aboout redis pipelining, most people conflate it with transactions. In fact, the redis-py library conflates it by making a transaction flag you pass into the pipeline object. There has been a lot of effort to make Redis behave in a transactional way.
This is not a goal for RedPipe.
RedPipe was written to improve network i/o.
Most of the concepts for RedPipe came from a project that uses Redis Cluster. It’s not practical or supported to use transactions there. Any kind of atomic multi-step operation is limited to a single key, and is best accomplished with a LUA script.
I haven’t disallowed transactions. But I’m not going out of my way to try to support it either.
You can turn transactions on or off in setting up your connection.
client = redis.Redis()
redpipe.connect_redis(client, transaction=False)
I welcome discussion. If this is a pain point for you, let me know <https://github.com/72squared/redpipe/issues>.