我对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的解决方案,则解决方案应类似于:
Bob
name
abc
样本数据
执行此操作( 使用redis集 ):
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]
xyz
field
lname
abc:name ["Bob", "Sam", "Joe", "Bob", "Joe"]
那么你应该使用一个列表,而不是