簡體   English   中英

Windows本地主機上的Redis性能

[英]Redis performance on Windows localhost

我在本地計算機上安裝了Redis實例。 該實例包含147,848個序列化對象。 我需要檢索所有對象,然后應用一些邏輯。 我想知道沒有辦法一次檢索所有對象,所以首先我得到所有鍵

var keys = client.GetAllKeys();

然后我遍歷鍵以獲取json,然后將它們反序列化為

var keys = client.GetAllKeys();
foreach (string key in keys)
{
    var sobj = client.Get<string>(key);
    MyClass desobj = JsonConvert.DeserializeObject<MyClass>(sobj);
    myList.Add(desobj);
}

所有這些過程(獲取所有鍵,然后檢索所有對象並反序列化它們)大約需要32秒

對於15萬個對象

  1. 獲取所有鍵僅需0.4秒
  2. 獲取所有值花費了16秒
  3. 反序列化花費了6秒

還有另一個Redis實例,其中包含100萬個對象,並且

  1. 獲取所有鍵花了2秒鍾
  2. 獲取所有值花費了64秒
  3. 反序列化花費了29秒

有什么辦法可以提高性能?

我認為您可以通過使用多個線程來提高性能(可以使用c#並行)。 請注意,Redis是一個單線程應用程序,而持久性將在反序列化步驟上實現。

如果您是我,我將衡量獲取所有密鑰,所有值並反序列化所有值所需的時間。 通過此信息,您可以更好地了解哪個部分最慢。

暫無
暫無

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

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