【发布时间】:2012-04-25 20:51:33
【问题描述】:
我想知道在 Redis 中存储 IP(不是很多 (
我有一些想法,但在我看来它们并不优雅/高效:
- 使用列表存储 IP,其中每个条目都是数组(ip、note、timestamp)。这将使所有 IP 的检索变得简单,但需要通过所有 IP 循环确定给定 IP 是否在列表中。因此,这对于检索所有 IP 来说是件好事,但对于检查一个 IP 是否存在则不是那么好。
- 使用哈希表存储 IP,其中 IP 是键的一部分,元数据是哈希中的字段。这将允许我检查 IP 是否非常简单地存储(exists()),但需要一个单独的 redis 列表来跟踪存储的 IP(这需要我在添加/删除 IP 时非常小心)和我必须执行 1 + count(ips) 操作才能获取所有存储的 IP 及其元信息。因此,这种方式适用于检查一个 IP 是否存在,但不适用于检索所有 IP。
是否有其他方法可以使用 redis 执行此操作,或者我是否必须使用上述方法之一(如果有,哪种方法最好)?
【问题讨论】: