Ich habe etwa 100 Millionen einfache Schlüssel-Wert-Paare (es ist Legacy-Daten, nie zu aktualisieren, und Schlüssel sind zufällige Zeichenfolge), und ich möchte sie in Redis für die Abfrage speichern.Wie Mapping 100 Millionen Zeichenfolge in 100 Tausend int?
mein Gedanke ist, dass ich die ersten vier Zeichen als Hash-Schlüssel verwenden, und speichern Sie sie in einen Hash-Typ, so gibt es etwa eine Million Hash-Schlüssel in redis, mit jedem Hash-Schlüssel hat etwa 1000 Unterschlüssel.
aber die Dinge laufen einfach nicht wie geplant. Aus irgendeinem Grund fand ich einige Hash-Schlüssel nur einen Unterschlüssel, aber einige haben mehr als 500.000 Unterschlüssel, die nicht sehr effizient im Speicher codiert werden können.
also würde ich gerne wissen, dass es gibt einige einfache verständliche Algorithmus, der meine 100 Millionen Zeichenfolge durchschnittlich in 100 Tausend Eimer (Int) teilen kann. Wenn ich eine Saite aufnehme, kann ich mit dem gleichen Algorithmus wissen, wohin sie geht.
danke !!
Wie wäre es mit einem Trie (https://en.wikipedia.org/wiki/Trie), um alle Schlüssel zu speichern? – NMSL
sagst du, dass einige Präfixe nur einmal vorkommen, während andere 500k mal vorkommen? – FuzzyTree