簡體   English   中英

ASP.NET:從 System.Web.Caching.Cache 遷移到 Redis

[英]ASP.NET: Moving from System.Web.Caching.Cache to Redis

我參與了用 Redis 替換 System.Web.Caching.Cache 的努力。 我遇到的問題是,雖然 System.Web.Caching.Cache 似乎能夠緩存我傳遞給它的任何對象,但 Redis 是基於字符串的。 這意味着我必須自己擔心序列化。

我嘗試過的兩種方法是 1) 使用 JSON.NET 將我的對象序列化為字符串,以及 2) 使用 BinaryFormatter。 可能可以使 JSON.NET 方法起作用,但是當然有很多配置點(圍繞要序列化/忽略什么,如何處理引用循環等)並且使這種方法起作用已經變成了相當多的工作.

我懷疑 BinaryFormatter 方法可能更接近 System.Web.Caching.Cache 在內部所做的事情。 不過,在沿着這條路走了一點之后,我不再那么確定了。 我嘗試緩存的許多類型都沒有標記為 [Serializable],這似乎排除了 BinaryFormatter。

我想知道是否有其他人遇到過類似的問題,或者知道 System.Web.Caching.Cache 在內部做什么以便我可以模擬它。 謝謝。

System.Web.Caching.Cache 似乎能夠緩存我傳遞給它的任何對象。 這意味着我必須自己擔心序列化。

這正是因為System.Web.Caching.Cache在應用程序運行時存儲對象引用

這樣我就可以效仿它

不幸的是,你不能。 Redis 是一個遠程服務。 當你利用Redis(即分布式緩存,減少本地機器的內存占用)時,你必須付出代價——自己處理序列化。

好消息是,有幾個可用的序列化庫。

暫無
暫無

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

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