如何在Redis哈希中存储数组?
我对Redis还是很陌生,希望看看是否有可能。想象一下我正在接收这样的数据:
{ "account": "abc", "name": "Bob", "lname": "Smith" }{ "account": "abc", "name": "Sam", "lname": "Wilson" }
{ "account": "abc", "name": "Joe"}
并为另一个帐户接收此数据:
{ "account": "xyz", "name": "Bob", "lname": "Smith" } { "account": "xyz", "name": "Sam", "lname": "Smith"}
我想以类似的格式将这些数据保留在Redis中:
abc:name ["Bob", "Sam", "Joe"]abc:lname ["Smith", "Wilson", Null]
对于xyz:
xyz:name["Bob", "Sam"]xyz:lname["Smith", "Smith"]
所以问题是我应该使用哪种数据类型来存储此Redis?
回答:
如果您的目标是检查是否Bob
用作name
该帐户abc
的解决方案,则解决方案应类似于:
{ "account": "abc", "name": "Bob", "lname": "Smith" }{ "account": "abc", "name": "Sam", "lname": "Wilson" }
{ "account": "abc", "name": "Joe"}
执行此操作( ):
SADD abc:name Bob Sam JoeSADD abc:lname Wilson Smith
然后,您可以通过以下命令检查是否Bob
用作name
该帐户的abc
:
SISMEMBER abc:name Bob> true
要检索字段的所有值,请使用SMEMBERS:
SMEMBERS abc:name> ["Bob", "Sam", "Joe"]
- 密钥名称在此
[account]:[field]
格式下。在哪里[account]
能abc
,xyz
等等,并field
可以name
,lname
… - 如果您不希望唯一值,例如:
abc:name ["Bob", "Sam", "Joe", "Bob", "Joe"]
那么你应该使用一个列表,而不是
以上是 如何在Redis哈希中存储数组? 的全部内容, 来源链接: utcz.com/qa/427377.html