Change RedisConnection to end subscriptions when not allowed
Motivation:
When RedisConnection.allowSubscriptions
is set to false
, the connection could still be in a subscription state
leaving further commands to fail slowly from a full roundtrip to Redis, rather than succeeding as expected.
This changes the implementation so that it triggers a full unsubscribe from patterns and channels when set to false
.
Modifications:
- Change:
RedisConnection.allowSubscriptions
to callunsubscribe()
andpunsubscribe()
when set tofalse
- Change:
RedisPubSubHandler
to prefix storage of all dictionary keys to avoid name clashes between pattern and channel subscriptions
Result:
Developers should now have more deterministic and unsurprising behavior with PubSub in regards to subscription management and connection state.