Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 拆分Redis RDB文件_Caching_Amazon Ec2_Redis_Redis Rdb - Fatal编程技术网

Caching 拆分Redis RDB文件

Caching 拆分Redis RDB文件,caching,amazon-ec2,redis,redis-rdb,Caching,Amazon Ec2,Redis,Redis Rdb,目前我在EC2机器上使用redis,带有60G RAM,没有任何从机,但随着数据的增长,我需要更多内存 我在考虑迁移到2 x 60G机器,并在这两台机器之间分割已有的数据 是否有任何工具用于拆分RDB文件?我还没有找到专门为此设计的任何工具。如果要分割数据,您需要有一种方法来分割密钥,以便从服务器a写入/读取一些密钥,从服务器B写入/读取其他密钥 没有办法分割RDB文件,但是您可以做一些事情来实现您想要的 首先,您可以在第二台服务器上启动一个redis实例,并说它是当前服务器的从属服务器,但将p

目前我在EC2机器上使用redis,带有60G RAM,没有任何从机,但随着数据的增长,我需要更多内存

我在考虑迁移到2 x 60G机器,并在这两台机器之间分割已有的数据


是否有任何工具用于拆分RDB文件?我还没有找到专门为此设计的任何工具。

如果要分割数据,您需要有一种方法来分割密钥,以便从服务器a写入/读取一些密钥,从服务器B写入/读取其他密钥

没有办法分割RDB文件,但是您可以做一些事情来实现您想要的

首先,您可以在第二台服务器上启动一个redis实例,并说它是当前服务器的从属服务器,但将param slave read only设置为false。这将导致从机同步并从主机读取所有redis数据。到目前为止,您只有一个包含所有数据的从机,但现在我们将做一些有趣的事情

然后你需要决定分片策略。一些redis客户端为您执行此操作。例如,如果您对Ruby客户端进行了配置,它就知道如何处理这个问题。您需要配置客户端,以便将密钥分片到A和B(或者使用twemproxy,以便客户端不知道不同的服务器,twemproxy会处理)

一旦配置了客户机,就需要将新客户机部署到生产环境中,并立即将从机配置为不再是从机。您可以在从属服务器上直接使用CONFIG命令执行此操作(不要忘记使用CONFIG REWRITE持久化配置),或者您可以更改从属服务器的配置文件并重新启动,只要对您更方便。由于从机配置为从机只读false,因此即使在从机模式下,它也将接受写操作。这意味着,如果您直接从redis cli更改配置,您可以在不重新启动的情况下从从属设备更改为一个分片的独立redis,我认为这非常酷


请注意,切分后,必须小心使用多个命令或使用LUA脚本。如果您使用twemproxy,您将无法使用这些命令,但是如果您在客户端进行切分,您仍然可以使用MULTI或LUA。只需小心使用分片机制,其中所有相关密钥将保留在同一台服务器上。

如果要分割数据,您需要有一种方法来分片密钥,以便从服务器a写入/读取一些密钥,从服务器B写入/读取其他密钥

没有办法分割RDB文件,但是您可以做一些事情来实现您想要的

首先,您可以在第二台服务器上启动一个redis实例,并说它是当前服务器的从属服务器,但将param slave read only设置为false。这将导致从机同步并从主机读取所有redis数据。到目前为止,您只有一个包含所有数据的从机,但现在我们将做一些有趣的事情

然后你需要决定分片策略。一些redis客户端为您执行此操作。例如,如果您对Ruby客户端进行了配置,它就知道如何处理这个问题。您需要配置客户端,以便将密钥分片到A和B(或者使用twemproxy,以便客户端不知道不同的服务器,twemproxy会处理)

一旦配置了客户机,就需要将新客户机部署到生产环境中,并立即将从机配置为不再是从机。您可以在从属服务器上直接使用CONFIG命令执行此操作(不要忘记使用CONFIG REWRITE持久化配置),或者您可以更改从属服务器的配置文件并重新启动,只要对您更方便。由于从机配置为从机只读false,因此即使在从机模式下,它也将接受写操作。这意味着,如果您直接从redis cli更改配置,您可以在不重新启动的情况下从从属设备更改为一个分片的独立redis,我认为这非常酷

请注意,切分后,必须小心使用多个命令或使用LUA脚本。如果您使用twemproxy,您将无法使用这些命令,但是如果您在客户端进行切分,您仍然可以使用MULTI或LUA。只需小心使用一种分片机制,其中所有相关密钥都将保留在同一台服务器上