簡體   English   中英

將屬性寫入內存緩存,而不寫入Objectify中的數據存儲區?

[英]Writing property to memcache, but not to datastore in Objectify?

在Objectify中,我可以使用@Cache注釋實體以將其寫入memcache。 如果要忽略某些屬性寫入數據存儲區,可以使用@Ignore對其進行注釋。

  • 我正在尋找的是一種在memcache中存儲屬性的方法,而不是在數據存儲區中存儲屬性的方法。
  • 我想將其與.save(onlyCache)結合使用。 {僅限偽代碼}

換句話說,我希望能夠擁有僅持久保存到內存緩存而不保存到數據存儲區的屬性。 如果從memcache檢索實體,則將填充這些屬性,否則為空。

同時,我希望能夠僅將實體保存到內存緩存,而不能保存到數據存儲。

為什么這有意義? 有時我擁有一些屬性,這些屬性僅在用戶在線時才需要,而在沒有關系的地方,這些屬性是否會丟失。 例如,假設我有一個用戶實體,該用戶實體不經常被寫入,但是經常被讀取(例如,社交網絡中朋友的狀態),並且我想跟蹤每個用戶的在線狀態,每次用戶導航時在線狀態值都會改變在我的應用中。 能夠將用戶附加到其當前狀態指示器中,將用戶存儲到內存緩存中,將是一件很不錯的事,因此,在檢索到該客戶端時,客戶端會收到該實體及其持久值以及任何可用的緩存信息。 如果我可以控制.save(onlyCache)告訴Objectify我是否要將實體僅保存到memcache還是一直保存到數據存儲,我可以微調我想看到的內容和不想要的內容。

在Objectify中是否存在類似的東西,或者是否可行? 這種方法有什么弊端嗎?

沒有持久化到數據庫的屬性可能不應該屬於該實體。 可以將您提到的運行時屬性分別使用MemcacheService( https://cloud.google.com/appengine/docs/java/javadoc/com/google/appengine/api/memcache/MemcacheService )保存到memcache。 這不會使您的代碼混亂(具有過多的注釋,@ Ingore,@ CacheOnly等)並保持架構干凈。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM