1
例如,hgetall表示時間複雜度爲O(N)。如果哈希有5個字段,這是否意味着Redis正在執行5個操作?我知道基於許多基準的Redis可以每秒處理80-100k次操作。但真正的手術是什麼?它是爲命令列出的時間複雜度的1-1映射嗎?這將幫助我繪製出我對Redis進行的查詢的閾值。Redis中的時間複雜性意味着什麼?
例如,hgetall表示時間複雜度爲O(N)。如果哈希有5個字段,這是否意味着Redis正在執行5個操作?我知道基於許多基準的Redis可以每秒處理80-100k次操作。但真正的手術是什麼?它是爲命令列出的時間複雜度的1-1映射嗎?這將幫助我繪製出我對Redis進行的查詢的閾值。Redis中的時間複雜性意味着什麼?
通過代碼的外觀:
void genericHgetallCommand(client *c, int flags) {
...
...
while (hashTypeNext(hi) != C_ERR) {
if (flags & OBJ_HASH_KEY) {
addHashIteratorCursorToReply(c, hi, OBJ_HASH_KEY);
count++;
}
if (flags & OBJ_HASH_VALUE) {
addHashIteratorCursorToReply(c, hi, OBJ_HASH_VALUE);
count++;
}
}
它遍歷所有的鍵和值。因此,Hashset越大複雜性越大。它的線
我想我的問題是什麼意思,在「每秒操作」方面。即使是在Redis的基準測試頁面上,我也能看到這一點,但它並不能準確解釋「操作」是什麼。 – dmastylo
這不是大O符號的意思。 – dramzy
我知道,但大O表示法與Redis中的操作有什麼關係? 80k操作的聲明,但這是基本的hset或hget命令。如果它返回5個字段,是否是hgetall 5操作? – dmastylo
取決於你從哪裏得到「索賠」 –