簡體   English   中英

使用StackExchange.Redis將自定義.Net對象存儲在Azure Redis緩存中

[英]Storing custom .Net objects in Azure Redis Cache with StackExchange.Redis

我們正在實現StackExchange.Redis,用於存儲有關三個電子商務站點(大約18,500種產品)的所有信息。 信息存儲在SQL Server數據庫中,映射到自定義對象,然后使用以下鍵命名約定添加到Azure Redis緩存中:

urn:products:{0}:{1}

(其中0是商店標識符,1是產品標識符)。 我讀了KEY,SCAN,FLUSHDB等在哪里? 並能夠通過模式獲得與urn:products:{0}相匹配的密鑰。 我們面臨的問題是我們的項目涉及很多GetAllProducts List < Products >GetAllCategories List < Categories > ,然后由LINQ函數使用。

基於此:

  • 我嘗試將所有產品(自定義對象列表)存儲在一個鍵( urn:products:all )中,但是這種方法在Azure Redis緩存中生成了超時。 這是建議的方法嗎? 還是最好將每個產品存儲在單獨的密鑰中?
  • 我認為循環每個鍵以獲得每個值是不正確的。 是否可以通過模式獲得鍵/值的集合?
  • 我也讀過HASHES,但是我認為它們對我們的要求沒有幫助。

我想知道您一次調用大量記錄的方法。 我建議將它們切成不超過一千條的記錄。

Redis僅具有非常有限的功能,因此可能無法滿足您的要求。 Redis適用於緩存或簡單的鍵值獲取器和設置器。 為此,您可以考慮其他基於內存的數據庫,例如MongoDB。

在您的情況下,Redis Set是結合或減去給定條件的最佳方法,或者Hash用於基於屬性的對象存儲。 無論選擇哪種方法,都將使用兩個或多個數據類型,因為Redis數據類型不是那么通用。

RedisCookbook描述了很好的例子。

暫無
暫無

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

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