0

java memcache apiを使用して、ユーザーに関連付けられた永続的でないデータを保存します。すべてのユーザーは、いくつかのプロパティを格納するmemcacheエンティティを関連付けています。一部のプロパティは、埋め込みエンティティです。しばらくすると、他のプロパティ(String、Integer、Boolean)が存続している間、それらは消えます。そうすることを意図しているのですか、それともコードに何かが欠けていますか?キャッシュに保存されているエンティティを少なくとも1時間、またはこのようなものに依存できますか?Googleプラグインを使用してローカルマシンでデバッグすると、この動作が見られます。私のコードは次のようなものです:

class UserData {
    public Entity getEntity() {
        Entity ret = new Entity( "User", key );
        ret.setProperty( "property1", _integerval );
        ret.setProperty( "property2", _stringval );
        ret.setProperty( "property3", _complex.getEmbEntity() );
        return ret;
    }

    public static UserData fromEntity( Entity ent ) {
        UserData ret = new UserData();
        ret._integerval = (Integer)ent.getProperty("property1");
        ret._stringval = (String)ent.getProperty("property2");
        ret._complex.fromEmbEntity( (EmbeddedEntity)ent.getProperty("property3") );
        return ret;
    }
}
4

1 に答える 1

3

Google の実装では、エンティティがハングアップすることは保証されないことに注意してください。あらゆるものをいつでも追い出すことができます。ドキュメントから:

ただし、値を memcache のみに保存し、他の永続ストレージにバックアップしないかどうかを検討する場合は、値が突然利用できなくなった場合に、アプリケーションが適切に動作することを確認してください。値はいつでも memcache から失効する可能性があり、値に設定された有効期限の前に失効する可能性があります。

于 2013-03-06T05:48:26.813 に答える