2011-05-20 12 views
20

Şu anda bazı verileri Redis'e taşıyorum ve yaklaşık 1.4e6 öğeyi (ilişkili puanlar/sayımlarla) depolamak için sıralanmış bir kümeyi kullanmayı düşünüyorum. Bir kümedeki bu öğe sayısı, pratik bir sınırı aşacak ve bu seti kullanmak çok acı veriyor mu? 64 bit redis'i çalıştırmayı planlıyorum, veri için bu kadar kullanılabilir bellek bir sorun olmamalı. Bu boyutta sıralanmış bir setle deneyimi olan var mı? Öyleyse, set için ekleme ve sorgulama süreleri nasıldır?Redis'te sıralanmış bir kümedeki öğelerin sayısında pratik bir sınır var mı?

cevap

18

Kümeyle ne yapmak istediğinize bağlıdır. Basit operasyonlar çoğunlukla O (log n) 'dır, bu da bin kalem setinde olduğu gibi bir milyon ürün setinin sadece iki katı uzunluğunu aldıkları anlamına gelir. Yapılandırmanızda, kümenizden daha küçük bir bellek sınırı gibi ciddi bir şekilde kırılmadığınız sürece, performansın sorun olmaması gerekir.

Dikkatli olmanız gerekenler arasında, birden çok kümede, özellikle de sendikada, milyonlarca set için bin kat daha uzun sürecek işlemler yer alır. Pratik açıdan bu mutlaka bir sorun değil - ya da sizin amaçlarınız için yeterince hızlı olacaktır (redis, üretim işleminin milisaniye cinsinden en iyi şekilde ölçülebilmesi için çok yavaş bir şekilde belgelendi) veya işlem sırasını Sendikayu gerçekten büyük takımlarda çalıştırmaktan kaçının.

10

Sitemizde, tamsayı puanları olan yaklaşık 2 milyon öğeye (e-posta adresi) sahip sıralanmış bir grup vardır ve bu, yaklaşık 320 MB'lık bellek boyutuna sahiptir.

+0

Evet, yaklaşık 1 M int => int çiftimiz var ve tam olarak ne kadar alan kullandığını bilmiyorum, ancak yaklaşık 100mb/200mb olmalıdır. – Juan

İlgili konular