2012-04-16 2 views
3

Go에서 memcache에 쓰고 Java (appengine에 있음)에서 읽을 수 있습니까?Go와 Java로 Gae에서 Memcache 공유하기

memcache 뷰어에서 "Java 문자열"및 "문자열 이동"키가 있기 때문에 대답이 아니오 인 것처럼 보입니다. [] 바이트를 공유하는 것은 어떨까요?

App Store에서 Java와 Go 간의 원활한 통신을 위해 웹 후크와 데이터 저장소가 있습니까?

감사

+1

이동 및 Java 응용 프로그램에서 memcache와 통신하는 방법을 고려해보십시오. – alphazero

+0

+1 @alphazero. 이것은 정보 공유의 불명료 한 방법 인 것처럼 보입니다. – Ashe

+0

나는 따라 가지 않는다. @alphanzero, Go의 항목 유형은 값을 [] 바이트로 저장합니다. 자바 앱에서 값을 읽을 수 없습니까? 어쩌면 낮은 수준의 API를 사용하여 .. memcache 버전 (다른 언어)간에 공유되지 않은 것을 보지 못했지만. –

답변

2

나는 당신의 질문에 대한 답을 모르는,하지만 당신은 MemcacheSerialization.java의 방법 makePbKey에서의 일부를 찾을 수 있습니다. 이것은 자바가 어떻게 Object를 가져 와서 Key를 생성 하는지를 보여줍니다.

마찬가지로 appengine/memcache/memcache.go 파일에서 AppEngine for Go가 Item.Key (유형 문자열)에서 키를 생성하는 방법을 확인할 수 있습니다. 간단한 캐스트를 통해 각 키가 문자열에서 [] 바이트로 변환되는 GetMulti를 참조하십시오.

그래서 질문에 대한 최종 답은 mkPbKey와 GetMulti를 통해 같은 키를 얻는 경로를 찾는 지 여부에 달려 있습니다. Java에 String 유형의 키를 제공하고 250 이하의 길이를 갖고 Go의 앞뒤에 키를 두는 것이 기억 나지 않는 것처럼 보입니다. (하지만 mkPbKey를 읽는 것은 200 개의 코드 포인트를 가진 문자열에 어떻게 반응하는지 궁금하게 만든다.이 모든 것은 UTF-8로 멀티 바이트 인코딩을하게된다.

+0

맞아, Go Key의 따옴표를 사용하면 Java로 작성된 문자열에 액세스 할 수 있습니다. Memcache Viewer를 사용하여 [ "a", abc]의 [key, value]로 Go 항목을 작성하면 [key]를 [a]로 사용하여 Java String으로 읽을 수있었습니다. 나는 여전히 코드로 테스트해야한다. –