【发布时间】:2016-04-08 21:32:59
【问题描述】:
我有大约 1 亿个简单的键值对(它是遗留数据,永远不需要更新,并且键是随机字符串),我想将它们存储在 redis 中以供查询。
我的想法是我使用前四个字符作为哈希键,并将它们存储为哈希类型,因此redis中有大约一百万个哈希键,每个哈希键大约有1000个子键。
但事情并没有按计划进行。由于某种原因,我发现有些哈希键只有一个子键,但有些有超过 500,000 个子键,它们在内存中的编码效率可能不高。
所以我想知道是否有一些简单易懂的算法可以将我的 1 亿个字符串平均分成 10 万个桶(整数)。当我拿起一个字符串时,我可以使用相同的算法知道它的去向。
谢谢!!
【问题讨论】:
-
使用 Trie (en.wikipedia.org/wiki/Trie) 存储所有密钥怎么样?
-
你是说有些前缀只出现一次,而有些前缀出现50万次?