2016-06-23 16 views
0

Im auf meinem Server dieses Standardverfahren zu tun, mit einem "@Cache" - EntityObjectify nicht geladen von Memchache

  1. Last Einheit, ObjectifyService.ofy() load() Taste (.....)
  2. das Unternehmen
  3. an das Unternehmen speichern, ObjectifyService.ofy(). save(). Einheit (...). jetzt()

manipulieren Aber wenn ich in meinem appstat nachschauen finde ich dass es nie eine erfolgreiche Ladung vom Memcache gibt. Weil ich eine Get-Anfrage an den Memcache gefolgt von einer Get-Request an den Datastore, die ganze Zeit see it here. Das bedeutet, dass das Memcache meine Entität nicht enthält, wie ich es verstehe. Die Methode wird alle 10 Sekunden aufgerufen.

Dies ist eine ähnliche Diskussion (ohne eine Antwort für mich), die ich bisher gefunden habe. https://groups.google.com/forum/#!topic/objectify-appengine/d-yzaNLJL4s

+0

Also meine Frage ist: Warum gibt es keine erfolgreiche "Memcache-Load" –

Antwort

1

Um memcache bleibt im Einklang mit Ihren Cloud Datastore-Daten, Objectify hat folgende Regeln zu gewährleisten:

  • Auf load(), versuchen Sie zunächst von memcache zu lesen. Wenn dies fehlschlägt, lesen Sie in Cloud Datastore und speichern Sie sie in Memcache.
  • Unter save() die Entität in Memcache ungültig machen.

Also, wenn Sie immer load() von save() gefolgt durchführen, werden Sie lesen nie die Einheit von memcache - jede Anfrage wird immer Ihre Cache ungültig.

+0

Vielen Dank! Das wusste ich nicht. Ich war verwirrt wegen des Satzes "Writes wird schreiben" durch den Cache in den Datenspeicher in der Objektivierung Dokumentation. Ich dachte, dass das Memcache durch die write-Anweisung aktualisiert wird, anstatt gelöscht zu werden. Das Mitleid! –