【发布时间】:2012-02-25 04:14:34
【问题描述】:
我认为我对使用 Redis 的所有命令都有很好的掌握,但我很难找出使用它的最佳方式。我正在设计一个客户通知系统,当他们的任何电路出现警报时,它将通过他们首选的方法(电子邮件、SNMP、系统日志)通知他们。
所以,我得到了一个设备名称和一个端口。我需要将其与单个客户相关联,然后将该客户与交付方式相关联。使用关系数据库,它可能看起来像这样:
Device name: Los_Angeles
Port: 11
SELECT Customer_ID, Customer_name from device_info where device_port = 'Los_Angeles:11'
SELECT Customer_protocol, SNMP_destination, Syslog_destination from CUSTOMER
where Customer_ID = <customer_id from above>
(大大简化的示例)。
我可以看到如何使用列表散列或散列散列以编程方式执行此操作。但我想我在 Redis 中遇到的问题是我无法使用那些更复杂的数据结构(据我所知)。那么,如何将多条信息与一个键关联起来呢?我可以想到几种方法,但它们似乎都涉及多个步骤,我希望当前的 Redis 程序员提供一些关于什么是“最佳”方法的意见。
【问题讨论】:
-
你看过 Redis Hash 吗?例如,hmset / hmget 允许您关联一个键和多个可以代表您的身份的“字段”。 openmymind.net/2012/1/23/The-Little-Redis-Book - Redis Book 有一些很好的例子。
-
我实际上没有看到 HMSET/HMGET。在我完成教程之后,它必须是一个新的补充。我会玩的。
标签: data-structures nosql redis