-
Nathan Harris authored
Motivation: Some Redis commands are very connection specific that have impacts on future access that makes it difficult in the current checkout-use-return cycle that `RedisConnectionPool` uses. Developers need a way to borrow a specific connection, chain several commands together, and then return the connection to the pool. Modifications: - Add: `leaseConnection` method to `RedisConnectionPool` which provides a connection from the pool and returns it after a provided closure's ELF resolves - Add: `allowSubscriptions` property to `RedisConnection` for controlling the ability to make PubSub subscriptions - Add: `RedisClientError.pubsubNotAllowed` case for when `RedisConnection.allowSubscriptions` is set to `false` and a subscription was still attempted Result: Developers should now have an "escape hatch" with `RedisConnectionPool` to do limited exclusive chains of operations on a specific connection.