深藍醫生的PDF.NET資料開發框架提供了一個建議的記憶體資料庫功能,具體的功能介紹我就不多說了,可以看醫生的博文《移花接木:當泛型方法遇上抽象類----我的“記憶體資料庫”誕生記》。
我之所以會用到這個記憶體資料庫,主要是最近在做一個微信公眾平臺相關的專案,在完成一個微信操作的時候,可能要等待多次使用者的輸入,這過程中就需要把資料存在記憶體中,但是我用到的資料結構相對有比較複雜,自己設計方案比較麻煩,如果能用現有的程式碼就好了,突然想到了醫生提過的記憶體資料庫,於是找出來看了一下,然後自己試著用了一下,發現很適合我的需求,醫生提供的這個記憶體資料庫就是專門為PDF.NET設計的,使用十分方便,除了能在記憶體中方便的使用PDF.NET的記憶體資料庫以外,但遇到某些資料無法上傳的情況,還可以暫時把資料儲存到本地,等可以上傳資料的時候再把儲存到本地的資料重新載入記憶體。
我在專案中用到的一個場景是這樣的,使用者點選微信服務號的一個按鈕,我為這個使用者建立一個物件放到記憶體資料庫,使用者選擇不同的功能,我會在屬於這個使用者的物件中存入相應的資料,PDF.NET的記憶體資料庫提供了很好用的查詢功能,我以使用者微信的openid作為物件的id,不管使用者呼叫多少功能,輸入多久,服務端的記憶體資料庫都只有一個唯一的物件與該使用者對應,幫助使用者完成各種操作,等使用者操作完成或者超時的時候,我會刪除記憶體資料庫中的這個對應的物件,這樣也會節省很多記憶體。因為我大部分時候都不需要把資料儲存本地,所以使用記憶體資料庫效率還是很高的。如果需要把資料存到本地的時候,PDF.NET的記憶體資料庫也提供了這樣的儲存到本地的功能,使用很方便。再就是這個記憶體資料庫是基於PDF.NET的,如果你的系統本身就是基於PDF.NET的話,會大大的減少你的工作量。
好啦,具體的使用還是看看醫生的部落格吧,結束!