我正在使用 redis 为我的 Web 应用程序实现社交流和通知系统。我是 redis 的新手,我对哈希及其效率有些怀疑。
我已经阅读了这篇很棒的 Instagram 帖子 ,并计划实施他们类似的解决方案以减少存储空间。
正如他们的博客中提到的,他们确实喜欢这样
为了利用散列类型,我们将所有媒体 ID 存储到 1000 的存储桶中(我们只取 ID,除以 1000 并丢弃余数)。这决定了我们落入哪个键;接下来,在位于该键的散列中,媒体 ID 是散列中的查找键,用户 ID 是值。举个例子,给定媒体 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 应用程序中实施有效方法的建议。
PS请!不要说stackoverflow不是用来提建议的,我也不知道去哪里寻求帮助。
谢谢!