3

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

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

Web-hook 和数据存储是 Java 和 Go 在 Appengine 上进行通信的唯一方式吗?

谢谢

4

1 回答 1

3

我不知道你的问题的答案,但你会在MemcacheSerialization.java的方法 makePbKey 中找到它的一部分。这显示了 Java 如何获取一个对象并从中生成一个键。

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

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

于 2012-04-17T09:37:25.820 回答