2017-08-17 93 views
0

我有一個自定義對象,在系統中的某個模塊中被多次引用。讓我把它稱爲CustomObj。爲了最大限度地減少從DB中加載這個對象,我想將它存儲在Session中的這些對象的集合中。所以我想存儲一個CustomObj字典,其中的關鍵是CustomObj的ID。這樣我就可以檢查會話是否存在關鍵字,然後只需重複引用CustomObj,而不會每次都訪問數據庫。在其他地方更新對象時觸發會話更新

但是,這些CustomObjs可以由管理員更新並且其屬性會更改。發生這種情況時,我想向連接的用戶廣播以更新字典中的該對象以使用最新的屬性。有沒有一個內置的過程中做到這一點,或者我需要實施某種形式的廣播,並通過SignalR強制更新(我已經爲Facebook等中心設置了通知)。 Session是否適合這個?

對象不會被非常頻繁地更新,也不會被很多不同的管理員更新,但是每隔一段時間,管理員都會對1-5個屬性進行更改,保存並且對象現在不同。

+1

備註:由於在所有實際情況下會話狀態都應該處於進程外,因此使用會話狀態作爲緩存很不可能獲得很多性能改進。確保實際測量是否每次讀取對象時讀取對象實際上都是您的案例的問題 - 緩存失效不是正確的最簡單的事情(https://skeptics.stackexchange.com/questions/19836/has-phil-卡爾頓曾經說過的那裏只有兩個硬件在計算機科學) –

回答

1

這不是一個將對象存儲在由不同用戶修改的會話中的理想方法。在你的情況下,緩存應該是推薦的解決方案。