在redis站點中,在「內存優化」中說小哈希使用的方式少於少數幾個內存,所以最好存儲少量字段的小哈希,而不是幾個鍵,所以我想製作,例如,用戶哈希和存儲在字段中的用戶作爲JSON序列化數據,但我的哈希如何是真的很大的意義,我有很多領域。Redis - 如何存儲我的數據?
將用戶存儲爲具有大量字段或多個小哈希的單個哈希值是否更好?
我問這是因爲在redis站點中它說「小」哈希比存儲一些值的幾個鍵更好,但我不知道它是否仍然適用於非常大的哈希。
在redis站點中,在「內存優化」中說小哈希使用的方式少於少數幾個內存,所以最好存儲少量字段的小哈希,而不是幾個鍵,所以我想製作,例如,用戶哈希和存儲在字段中的用戶作爲JSON序列化數據,但我的哈希如何是真的很大的意義,我有很多領域。Redis - 如何存儲我的數據?
將用戶存儲爲具有大量字段或多個小哈希的單個哈希值是否更好?
我問這是因爲在redis站點中它說「小」哈希比存儲一些值的幾個鍵更好,但我不知道它是否仍然適用於非常大的哈希。
我會說你最好的解決方案是爲每個用戶創建一個密鑰,或許由用戶id
命名並存儲json數據。
我們試圖每個用戶存儲爲每個用戶1個哈希值,然後字段每個用戶的屬性,但我們發現,我們從來沒有真正使用的字段分別在大多數情況下,最需要的數據(HGETALL
),所以切換到存儲json - 這也有助於保存數據類型。
需要更多的細節,以瞭解您想要存儲數據的內容以及如何真正提供更多建議。
比方說,你有這樣的用戶:
{"ID": "344", "Name": "Blah", "Occupation": "Engineer", "Telephone": [ "550-33...", ...] }
你會序列化JSON並將其存儲爲Redis的什麼說的字符串。即你會使用「GET」和「SET」命令。
例如
SET "user:344" "<SERIALIZED>
由於「用戶」是您的主要對象之一,它不是一個小散列。
文檔的要點是關於哈希會有少量元素。例如,假設在整個系統中有10種顏色,並且您希望將某些數據與每種顏色相關聯。不要這樣做:
color:blue -> DATA, color:white -> DATA
這對你更好。
colors -> blue -> DATA
colors -> while -> DATA
你是指用json作爲用戶散列值的一個散列字段嗎? –
我的意思是通過GET/SET使用標準密鑰 – Salakar
我同意這一點。哈希的另一個限制是你不能保持嵌套關係而不把嵌套對象轉換成jsons(或其他序列化的字符串)以便放入哈希字段。這變得混亂和毫無意義,可能只是將整個序列化成json並使用字符串數據類型。 –