Caching 如何使用redis适配器在geode中复制非字符串数据

Caching 如何使用redis适配器在geode中复制非字符串数据,caching,redis,gemfire,geode,Caching,Redis,Gemfire,Geode,在大多数情况下,Geode为每个数据分配一个分区区域 结构。例如,每个已排序的集合都分配有自己的集合 分区区域,其中键为用户数据,值为 用户提供的分数,条目按分数索引。两个 这种设计的例外情况是数据类型String和HyperLogLog。全部的 字符串被分配给单个分区区域 对于WAN复制,我们创建一个网关发送方,然后将该发送方分配到特定的区域进行复制。使用redis适配器,我们默认只有两个区域,如上所述。因为只有当我们为“set”数据结构添加一个键时,才会为它创建一个区域。我们如何用redis

在大多数情况下,Geode为每个数据分配一个分区区域 结构。例如,每个已排序的集合都分配有自己的集合 分区区域,其中键为用户数据,值为 用户提供的分数,条目按分数索引。两个 这种设计的例外情况是数据类型String和HyperLogLog。全部的 字符串被分配给单个分区区域

对于WAN复制,我们创建一个网关发送方,然后将该发送方分配到特定的区域进行复制。使用redis适配器,我们默认只有两个区域,如上所述。因为只有当我们为“set”数据结构添加一个键时,才会为它创建一个区域。我们如何用redis适配器复制这些区域?

由我完成的WAN复制步骤:

start locator --name=dc1  --properties-file=gemfire.properties
start server --name=redis  --redis-port=11211 --J=-Dgemfireredis.regiontype=REPLICATE
create gateway-sender --id=dc1 --remote-distributed-system-id=3
create gateway-receiver
现在,我列出了当前可用的区域

Cluster-1 gfsh>list regions
List of regions
---------------
ReDiS_HlL
ReDiS_StRiNgS
将这两个区域分配给网关发送方

alter region --name=ReDiS_StRiNgS --gateway-sender-id=dc1
它能够复制字符串,但不能复制其他数据结构

gemfire.properties

mcast-port=0
locators=1dc1[10334]
distributed-system-id=1
remote-locators=dc2[10334] 

我已经在dc2上运行了相同的命令。

在为其他数据结构创建区域之前,Redis适配器实现看起来像cache.xml,以查看是否定义了区域。因此,在您的情况下,可以在启动服务器时在cache.xml中定义一个带有网关发送器的区域。有关创建cache.xml文件的详细信息,请参见。完成后,可以运行以下命令:

gfsh>start server --cache-xml-file=/path/to/cache.xml

在为其他数据结构创建区域之前,Redis适配器实现将查看cache.xml以查看是否定义了该区域。因此,在您的情况下,可以在启动服务器时在cache.xml中定义一个带有网关发送器的区域。有关创建cache.xml文件的详细信息,请参见。完成后,可以运行以下命令:

gfsh>start server --cache-xml-file=/path/to/cache.xml

当您之前不知道区域的名称时,如何定义该区域?在远程集群上,如果不存在具有此名称的区域,数据将被丢弃。因此,您确实需要限制可以创建的区域的名称,然后在两个集群上创建它们。当您不知道之前的区域名称时,如何定义该区域?在远程集群上,如果不存在具有此名称的区域,则会丢弃数据。因此,您确实需要限制可以创建的区域的名称,然后在两个集群上创建它们。