2017-05-26 52 views
2

我想找到最佳實踐(有效)的方式存儲ListDate對象的報告對象的關鍵。最佳實踐存儲列表<T>在StackExchange.Redis

列表可以serailised爲XML/DataContract或protobuf的....

並給予一些數據可能是大的(關鍵的是片):

  • 我想知道是否有是以IEnum /流媒體方式從redis緩存中獲取數據的任何方法? Atm我們使用ProtoBuf.NET來創建基於文件的緩存。我們以流的方式將數據檢索到mem(我們也可以選擇在T對象中選擇我們想要的東西作爲ProtoBuf允許我們做的選項)
  • 是否有任何方法可以強制(在某些不活動之後)確定部分數據將從mem卸載並返回到文件中(如果未被使用)。看到https://redis.io/topics/data-types#sorted-sets - 但如果它被稱爲

TNX

回答

3

這聽起來像你想有一個有序集合再次加載它。你可以使用日期作爲價值,也許在時代(因爲它需要是一個數字)。 SE.Redis支持所有您希望獲得範圍值的操作(位置範圍 - 前20條記錄等;或絕對範圍基於值 - 以相同單位表示的兩個日期之間的所有項目)。查看啓動「SortedSet ...」的方法。

該值可以是二進制的,所以protobuf網是好的(你會分別序列化每個日期的值)。只需通過一個byte[]作爲值。您需要單獨處理序列化到redis庫。

至於交換數據:沒有。 Redis具有基於日期的到期日,但沒有冷熱存儲。它要麼在那裏,要麼不是。您可以使用計劃任務來基於日期範圍清除或移動數據,同樣可以使用任何Z *(redis)或SortedSet *(SE.Redis)方法。

有關Z *操作的完整列表,請參閱:https://redis.io/commands#sorted_set。他們都應該在SE.Redis中可用。