簡體   English   中英

如何以編程方式調用infinispan緩存加載器

[英]how to programmatically invoke infinispan cache loader

我想設置一個緩存加載策略,以使infinispan緩存中的內容來自* .dat(由infinispan本身創建的)或基於系統屬性的人類可讀的txt文件(由手動導出緩存項創建的) 。

如何以編程方式調用infinispan緩存加載器以從* .dat文件加載? 我可以解析txt文件並從中加載緩存,但不確定如何使用dat文件播種緩存。

緩存加載器/寫入器是在啟動時創建的,因此無法即時添加。 但是,您可以:

a)創建新的緩存並將緩存加載器置於程序配置中; 那么您只需調用cache.entrySet()甚至更好的cache.getAdvancedCache().filterEntries()並讀取包含存儲中數據的緩存內容,並將其提供給目標緩存。 您可能應該在加載過程中以某種方式清除緩存,以便在文件太大時不會耗盡內存。

b)僅創建緩存加載器類本身( SingleFileStore ),然后調用process()讀取所有條目。 您可以找到一個在testsuite中實例化它的示例。

c)查看代碼以查看格式-實際上很簡單,文件開頭有4個魔術字節,條目大小(4個字節),鍵長(4個字節),數據長度(4個字節),元數據長度(標頭中包含4個字節)和到期時間戳記(8個字節),然后是密鑰,數據和元數據。 使用VersionAwareMarshaller對象編組為字節並返回。

@Flavius絕對正確。 高速緩存編寫器和加載器在啟動期間實例化。

您可以考慮實現自己的Custom Cache loader並將其部署在Hotrod服務器上。 最簡單的方法是使用此原型 在這里您可以找到實施細節。

暫無
暫無

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

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