2015-08-16 10:45:01 +08:00
|
|
|
#pragma once
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
class redis_reshard
|
|
|
|
{
|
|
|
|
public:
|
2016-03-13 20:01:41 +08:00
|
|
|
redis_reshard(const char* addr, const char* passw);
|
2015-08-16 10:45:01 +08:00
|
|
|
~redis_reshard();
|
|
|
|
|
|
|
|
void run();
|
|
|
|
|
|
|
|
private:
|
|
|
|
acl::string addr_;
|
2016-03-13 20:01:41 +08:00
|
|
|
acl::string passwd_;
|
2015-08-16 10:45:01 +08:00
|
|
|
std::vector<acl::redis_node*> masters_;
|
|
|
|
|
|
|
|
acl::redis_node* find_node(const char* id);
|
|
|
|
bool get_masters_info();
|
|
|
|
void copy_all(std::vector<acl::redis_node*>& src, const char* exclude);
|
|
|
|
void show_nodes();
|
|
|
|
void show_slots(const acl::redis_node& node);
|
|
|
|
void copy_slots(acl::redis_node& from, acl::redis_node& to);
|
|
|
|
};
|