prometheus_client_php icon indicating copy to clipboard operation
prometheus_client_php copied to clipboard

RedisCluster support

Open mvhirsch opened this issue 1 year ago • 5 comments

I'm currently working on RedisCluster support but do lack knowledge about keyspace and slots. Looks like there was once an approach (see #112), but at the time of writing there is no update.

I managed to connect my RedisCluster, but run into errors like this:

Warning: RedisCluster::eval(): All keys do not map to the same slot 

I read Redis Clustering best practices with keys but to be honest I'm clueless (or keyless? :joy: ). Any help is appreciated. I'd like to get this running soon, as one of my projects needs it.

mvhirsch avatar Apr 23 '24 18:04 mvhirsch

I see there is also an open request for Redis Sentinel #95 and a pending PR for Predis #127.

I'd like to introduce a RedisAdapter that's capable to work with all of them, by abstracting and hiding away the special use-cases (like in RedisCluster or Predis). Using a method like the one symfony/cache uses, it would be easy to connect to any redis instance supported by them using a simple DSN.

https://github.com/symfony/symfony/blob/02c1e3c5c31dfc7f7f2b13515b060639cfac838a/src/Symfony/Component/Cache/Traits/RedisTrait.php#L87

Of course, that requires a bigger rewrite of the current Redis and I'm still not sure what role RedisNg is (see #152).

WDYT?

mvhirsch avatar Apr 23 '24 19:04 mvhirsch

Sounds great!

LKaemmerling avatar Apr 23 '24 20:04 LKaemmerling