在redis网站中,在“内存优化”中,它表示小哈希使用的内存少于几个键,因此最好存储一个带有少量字段而不是几个键的小哈希所以我想要制作,因为例如,用户散列并将字段中的用户存储为json序列化数据,但是我的散列真的很大,这意味着我有很多字段。
将用户存储为具有大量字段或多个小哈希的单个哈希是否更好?
我问这个是因为在redis网站上它说“小”哈希比存储几个值的几个键要好但是我不知道它是否仍然适用于真正的大哈希。
答案 0 :(得分:0)
我想说你最好的解决方案是为每个用户创建一个密钥,可能由用户id
命名并存储json数据。
我们尝试将每个用户存储为每个用户1个哈希,然后为每个用户属性存储字段,但我们发现我们从未真正单独使用这些字段,并且在大多数情况下需要大部分数据(HGETALL
),所以切换到存储json - 这也有助于保留数据类型。
需要更多详细信息,说明您尝试存储数据的内容和方式,以便提供更多建议。
答案 1 :(得分:0)
假设您有这样的用户:
{"ID": "344", "Name": "Blah", "Occupation": "Engineer", "Telephone": [ "550-33...", ...] }
您将序列化JSON并将其存储为Redis所说的String。即你会使用" GET"和" SET"命令。
e.g。
SET "user:344" "<SERIALIZED>
自&#34;用户&#34;是你的主要对象之一,它不是一个小哈希。
文档的要点是关于哈希会有少量元素。例如,让我们说在整个系统中你有10种颜色,并且你想要将一些数据与它们中的每一种相关联。而不是做:
color:blue -> DATA, color:white -> DATA
你最好用哈希。
colors -> blue -> DATA
colors -> while -> DATA