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

时间:2017-10-11 14:45:07

标签: caching redis gemfire geode

  

在大多数情况下,Geode为每个数据分配一个分区区域   结构体。例如,每个排序集都是自己分配的   分区区域,其中键是用户数据,值是   用户提供的分数,条目按分数编制索引。他们俩   此设计的例外情况是数据类型String和HyperLogLog。所有   字符串被分配到单个分区区域。

对于WAN复制,我们创建网关发件人,然后将此发件人分配给特定区域进行复制。使用redis适配器,默认情况下我们只有两个区域,如上所示。由于仅在我们为其添加密钥时才会创建“集合”数据结构的区域。我们如何使用redis适配器复制这些区域? https://cwiki.apache.org/confluence/display/GEODE/GemFire+Multi-site+%28WAN%29+Architecture

我完成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上运行了相同的命令。

1 个答案:

答案 0 :(得分:0)

在为其他数据结构创建区域之前,Redis适配器实现看起来像cache.xml,以查看是否已定义该区域。因此,在您的情况下,您可以在启动服务器时在cache.xml中定义具有gateway-sender的区域。有关创建cache.xml文件的信息,请参阅this reference this hierarchy信息也很有用。完成后,您可以运行以下命令:

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