Fix node-redis
createCluster
normalized client
#427
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
When using
node-redis
, a client can be created usingcreateClient
andcreateCluster
. WhencreateCluster
is used,scanIterator
is not part of the cluster client, and cannot be called from the root. This caused ourTTL
not to be set, asisRedis
would be false, which would cause theredis-io
arguments to be used.Next to that, if
scanIterator
would be called with the current implementation when using a cluster, it would crash. As neither theio-redis
implementation nor thescanIterator
can be used.Fix
We also set
isRedis
to true when"masters" in client
, which can be used to check whethercreateCluster
was used.This fixed the mget and set behaviour, as now the correct
node-redis
implementation is used.This does not fix
scanIterator
yet, as this cannot be called from the root. redis/node-redis#2657So this also adds a custom implementation that calls
scanIterator
on each node of the cluster, and yiels all keys from each node.