簡體   English   中英

從Redis SETS取回數據是否比HSETS更快或更高性能?

[英]Is getting data back from Redis SETS faster or more performant than HSETS?

我目前有一種情況,我們使用REDIS在hashed set HSET HSET中存儲字符串field-value對。

使用散列集而不是僅使用集的原始原因是,在GUI搜索HSCAN使用HSCAN而不是僅使用SCAN可以輕松檢索記錄,因為在COUNT字段中獲取散列的長度更容易。

我在Redis文檔中讀到, GETHGET命令都以O(1)時間復雜度執行,但是我的團隊成員認為,如果我將所有值存儲在單個鍵中,則它基本上會在HGET期間返回整個哈希,而不是我需要的單數字field-value

因此,對於一個虛構但相似的示例:

  • 我有一個散列設置一個Redis的實例調用users
  • 哈希集具有150,000個field:value對, username:email

如果執行hget users coolguy ,是返回整個哈希還是僅返回用戶coolguy的電子郵件?

首先,HSET不是哈希集,它創建一個哈希表。 Redis中哈希表和集合(實際上是哈希集)背后的機制是相同的,區別主要在於哈希表具有值。

要回答您的問題:

如果執行hget用戶coolguy時,是返回整個哈希還是僅返回用戶coolguy的電子郵件?

只是該用戶的電子郵件。 您也可以使用HMGET一次獲取多個用戶的電子郵件。 您提取的每個用戶的O(1),或n個用戶的O(n)。

暫無
暫無

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

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