Redis Cluster Support #2685
-
Right now the Grouparoo application doesn’t support redis cluster. The crux is that the redis library we are using ( On Grouparoo’s end, we still want to use only environment variables for configuration to make Dockerize the application simple, and would need a way to:
Some ideas:
Any suggestions? Ideally, referencing some other application conventions would be helpful. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 1 reply
-
For reference, here is where the Grouparoo app parses the |
Beta Was this translation helpful? Give feedback.
-
If we did something like |
Beta Was this translation helpful? Give feedback.
-
Confirming a Hypothesis: You cannot use a redis cluster client on a regular redis cluster. This means that we can't just use the
|
Beta Was this translation helpful? Give feedback.
-
Hey, just to chime in for our particular use case in AWS:
It seems like Option 2 would be all that is necessary for this type of connection, and AWS provides a solution for "there’s only one cluster IP in the mix" under the hood of their configuration endpoint. The |
Beta Was this translation helpful? Give feedback.
-
After digging into what it would take to support redis-cluster, I ran into quite a few snags. It looks like the implementation details of how some of the commands work are rather different in redis-cluster than normal redis. Mainly, a lot of the atomic operations cannot be as atomic if they span shards 😕. - pipelining, mutli-gets, and lua commands specifically The underlying background job library we use makes heavy use of these “multi” commands to do things like “pop this job and move it over here” all at once. I’m worried about loosing some of the atomicity we get from ‘regular’ redis in exchange for cluster support. At this time, I cannot recommend the use of redis-cluster for Grouparoo |
Beta Was this translation helpful? Give feedback.
Hey, just to chime in for our particular use case in AWS:
According to the AWS Documentation for Redis (Cluster Mode Enabled) endpoints,
It seems like Option 2 would be all that is necessary for this type of connection, and AWS provides a solution for "there’s only one cluster IP in the mix" under the hood of their configuration endpoint. The
?cluster=true
option would flag for the use of the Cluster Client instead of the normal one...