【发布时间】:2012-07-02 03:54:11
【问题描述】:
我正在使用 redis 为我的 Web 应用程序实现社交流和通知系统。我是 redis 新手,我对哈希及其效率有些怀疑。
我读过这篇很棒的Instagram post 我计划实施他们类似的解决方案以减少存储空间。
正如他们的博客中提到的,他们确实喜欢这个
为了利用散列类型,我们将所有媒体 ID 分桶到 1000 个桶中(我们只取 ID,除以 1000 并丢弃余数)。这决定了我们落入哪个键;接下来,在位于该键的散列中,媒体 ID 是散列内的查找键,用户 ID 是值。举个例子,给定 Media ID 为 1155315,这意味着它落入桶 1155 (1155315 / 1000 = 1155):
HSET "mediabucket:1155" "1155315" "939"
HGET "mediabucket:1155" "1155315"
> "939"
因此,他们没有将 1000 个单独的键存储在 一个具有数千个查找键的哈希中。 我的疑问是为什么我们不能将查找键值增加到更大。
例如: Media ID of 1155315 will fall into mediabucket:115 by dividing it by 10000
甚至更大。
他们为什么要使用一个具有 1000 个查找键的哈希桶。为什么他们不能有一个具有 100000 个查找键的哈希桶。这与效率有关吗?
我需要您的建议,以便在我的 Web 应用程序中实施有效的方法。
附:请!不要说stackoverflow不是用来提建议的,我不知道去哪里寻求帮助。
谢谢!
【问题讨论】:
标签: python django nosql memcached redis