我是新來的Redis所以我做錯了什麼,我敢肯定:StackExchange.Redis server.Keys(模式:「IsVerySlow *」)
我存儲在大約16000鍵/值Azure Redis。
我用下面寫的鍵/值
foreach (var worksheet in wksList)
{
var wksYYMM = string.Format("{0}{1:00}", worksheet.ReviewDt.Year, worksheet.ReviewDt.Month);
var wksKey = string.Format("{0}:{1}:{2}", provCode, wksYYMM, worksheet.AcctNbr);
string jsonStr = JsonConvert.SerializeObject(MakeWsListDto(worksheet, provCoderList, rvrList));
cache.StringSet(wksKey, jsonStr);
}
所以我的鑰匙是這樣的: 「AP:201401:AZ5798BK」
當我嘗試像查找:
var keys = server.Keys(pattern: "AP:201401:*"); // returns in milliseconds
var keyAry = keys.ToArray(); // returns in over one minute
(note: this returns 12 keys)
它需要1分鐘12秒返回的鍵。一旦我有密鑰,需要幾毫秒來檢索這些值。如果我遍歷鍵的值並返回值,我會得到類似的結果。我做了一個ToArray()來隔離問題。
如果我嘗試在同一查詢redis的-cli.exe它回來以毫秒爲單位。
我使用這個命令是否有誤?
謝謝馬克我會試一試,讓你知道它是如何去的。這可以解釋爲什麼redis-cli.exe更快。 – Weej 2014-10-19 01:04:04
Marc!是的,這是答案。一個後續問題:我進行了一些優化測試,發現在頁面大小達到2000的情況下,我的性能得到了提升,儘管它在1650年左右達到了穩定水平。此時,它在大約180毫秒的時間內穩定下來。兩個問題:頁面優化是數據庫大小還是密鑰大小的函數?第二個問題:頁面大小的內存分配是發生在客戶端還是服務器上?非常感謝您的回答! – Weej 2014-10-19 11:06:37
這幫助我解決了與'server.Keys'類似的性能問題。謝謝! – G0dsquad 2017-02-07 10:54:59