Yaklaşık 100 milyon basit anahtar/değer çiftine sahibim (eski veriler, hiçbir zaman güncellenmesi gerekmez ve anahtarlar rastgele bir dizedir) ve bunları sorgu için redis'te saklamak istiyorum.100 milyon dize 100 bin int nasıl eşlenir?
İlk dört karakteri bir hash anahtarı olarak kullanıyorum ve bunları bir karma türünde saklıyorum, bu yüzden her bir karma anahtarın yaklaşık 1000 alt anahtarıyla birlikte, yaklaşık bir milyon karma anahtarın var.
Ancak işler sadece planlı olarak gitmez. Bazı nedenlerden dolayı, bazı karma anahtarların yalnızca bir alt anahtarının olduğunu buldum, ancak bazılarında bellekte kodlanamayan 500.000'den fazla alt anahtar var.
Bu yüzden 100 milyon dizimi ortalama 100 bin kanala (int) ayırabilen bazı basit anlaşılır algoritmalar olduğunu bilmek isterim. Bir ipi aldığımda, aynı algoritmayı kullanarak nereye gittiğini bilebilirim.
Teşekkürler!
Tüm anahtarları saklamak için bir Trie (https://en.wikipedia.org/wiki/Trie) kullanmaya ne dersiniz? – NMSL
Bazı öneklerin yalnızca bir kez gerçekleştiğini, diğerlerinin ise 500 bin katı geçtiğini mi söylüyorsunuz? – FuzzyTree