Skip to content
This repository has been archived by the owner on Jan 9, 2024. It is now read-only.

Build a new ClusterManager class/mechanism #390

Open
Grokzen opened this issue Sep 17, 2020 · 0 comments
Open

Build a new ClusterManager class/mechanism #390

Grokzen opened this issue Sep 17, 2020 · 0 comments
Labels
3.0.0 All issues that will be looked at for 3.0.0 release enhancement

Comments

@Grokzen
Copy link
Owner

Grokzen commented Sep 17, 2020

So right now there is a mix of server management commands or other command that is usually unrelated to normal redis-server operations like GET/SET/LISTS/HASH/ZSET/GEO and more. Some command and features is more used in the administration side of things for a redis cluster and then you should not really be using them in a normal cluster client usage anyway.

In the past there has been a similar class like this that would facilitate cluster management and other separate commands but that feature was removed as it was merged into the main RedisCluster client class. But since we still have commands remaining inside the client that is blocked that should really be sorted out and a implementation that works for all commands should be sorted out.

One of the main problems with the RedisCluster client is that a lot of the management style commands have to make a decision of what cluster implementation that you want to use to execute the function and make a decision on the data side of things.

This change would facilitate both solutions as it would provide some default execution logics for any management function but it would also expose different methods and features for the client user to easily implement their own cluster logic based on their own needs.

  • Make a separate Management Class
  • Implement some of the commands we know and have a solution for to facilitate a default way to execute some commands
  • Implement iterator methods that will enable looping over different sets of redis nodes in the cluster. iterate_all_nodes iterate_master_nodes iterate_slave_nodes iterate_startup_nodes. These methods would either return a regular Redis` class instance that points to each node in the cluster or it would be passed through RedisCluster to use any new cluster logic if needed.
  • Block out more functions from RedisCluster class as they are moved/reimplemented in the management class
  • more to come...
@Grokzen Grokzen added enhancement 3.0.0 All issues that will be looked at for 3.0.0 release labels Sep 17, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
3.0.0 All issues that will be looked at for 3.0.0 release enhancement
Projects
None yet
Development

No branches or pull requests

1 participant