[英]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
對象編組為字節並返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.