我想我正在尝试在Redis中设计一个可能错误的结构。这是我试图存储的结构
Account number 1
MAC Address 1 - > {serialized data}
MAC Address 2 - > {serialized data}
Account number 2
MAC Address 3 - > {serialized data}
MAC Address 4 - > {serialized data}
我想按帐号访问数据并获取与其值相关联的MAC。我想通过MAC访问它。从我正在阅读的内容来看,这并不是很有效。
我在想我应该创建2套,其中一套用于MAC列表,另一套MAC用于序列化数据,如下所示
Account Number 1 - > {Serialized list of MAC addresses}
Account Number 2 - > {Serialized list of MAC addresses}
MAC Address 1 -> {serialized data}
MAC Address 2 -> {serialized data}
我是否应该将Redis用于这些类型的数据存储?我在右边的trac
答案 0 :(得分:2)
考虑使用hashes来存储您的数据,例如:
HSET account_1 mac_1 {serialized data}
HSET account_1 mac_2 {serialized data}
HMSET account_2 mac_3 {serialized data} mac_4 {serialized data}
它涵盖了大多数用例,允许您:
1。按account
+ mac
对
HGET account mac
2。获取与给定mac
相关联的所有account
地址
HKEYS account
3。获取与给定mac
相关联的所有数据(account
地址和序列化数据)
HGETALL account
4. 获取没有mac
地址的所有数据
HVALS account
您唯一能够开箱即用的是直接通过mac
地址获取序列化数据,而无需指定account
。
因此,如果您需要此信息,则需要维护其他字典:
SET mac_1 account_1
SET mac_2 account_1
SET mac_3 account_2
SET mac_4 account_2