0

私の最近のプロジェクトで。Java アプリケーションと Php アプリケーションの間で memcached のデータ オブジェクトを共有する必要があります。Protobuf を使用して、シリアル化/逆シリアル化プロセスを処理します。

しかし、Protobuf による Data オブジェクトのシリアル化を Java アプリケーションの Memcached に書き込むと、Php アプリケーションは Memcached->get() を使用してキャッシュされた Data オブジェクトを取得し、PB4PHP を使用して Data オブジェクトを逆シリアル化します。エラーが発生します。Memcached->get() デシリアライズ エラーです。このような:

Memcached->get() でデータをデシリアライズできません。

Php memcached ライブラリのメソッド Memcached->get() には、デフォルトのシリアル化プロセスがあると思います。そのため、Protobuf バイト ストリームを逆シリアル化することはできません。

誰でもそれを機能させる方法を知っていますか。

4

1 に答える 1

0

php と java ではオブジェクトの格納方法が異なります。単純なシリアル化ではなく、JSON や XML などの一般的な形式を使用して保存してみてください。取得中に、Java または PHP に再度変換します。JSON を使用することをお勧めします。

于 2012-08-13T09:00:56.797 に答える