如何在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 Joe

SADD abc:lname Wilson Smith

然后,您可以通过以下命令检查是否Bob用作name该帐户的abc

SISMEMBER abc:name Bob

> true

要检索字段的所有值,请使用SMEMBERS:

SMEMBERS abc:name

> ["Bob", "Sam", "Joe"]

  • 密钥名称在此[account]:[field]格式下。在哪里[account]abcxyz等等,并field可以namelname
  • 如果您不希望唯一值,例如:

abc:name ["Bob", "Sam", "Joe", "Bob", "Joe"]

那么你应该使用一个列表,而不是

以上是 如何在Redis哈希中存储数组? 的全部内容, 来源链接: utcz.com/qa/427377.html

回到顶部