使用Go和Java在Gae上共享Memcache

时间:2012-04-16 22:50:36

标签: google-app-engine memcached go

我可以从Go写入memcache并从Java(在appengine上)读取它吗?

从memcache查看器看起来答案是否定的,因为有“Java string”和“Go string”类型的键。那么共享[] byte?

Web挂钩和数据是否是在Appengine上Java和Go之间进行通信的唯一方式?

由于

1 个答案:

答案 0 :(得分:3)

我不知道你问题的答案,但你会在MemcacheSerialization.java中的方法makePbKey中找到它的一部分。这表明了Java如何获取一个Object并从中获取一个密钥。

同样,在文件appengine / memcache / memcache.go中,您可以看到AppEngine for Go如何从Item.Key(类型字符串)中生成密钥。请参阅GetMulti,其中每个键通过简单的强制转换从字符串转换为[]字节。

所以,你的问题的最终答案取决于你找到通过mkPbKey和GetMulti的路径导致相同的密钥。在我看来,如果你给Java一个String类型的键,并且它的长度小于250,并且你记得在Go中的键之前和之后放置“”,它可能会起作用。 (但是读取mkPbKey让我想知道它如何对一个包含200个代码点的字符串作出反应,所有这些都会导致UTF-8中的多字节编码。看起来它会产生比预期更大的密钥。)< / p>