Redis是实现价值的关键

时间:2014-08-25 21:04:54

标签: redis

我想我正在尝试在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

1 个答案:

答案 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