5 milyon anahtar/değer çiftini saklamak için PHP uygulamam ile birlikte memcached kullanmayı düşünüyorum. Amacım, DB'den (benim durumumda dosya sistemi olan) ileri geri çekilmekten kaçınmaktır. Anahtar/değer çiftlerine saniyede 100-500 erişime sahip olabilirim. Anahtar değerleridir hem MD5 en ve formda şunlardır:Memnuniyet açısından iyi ya da kötü bir fikirde milyon anahtar-değer depolama?
array('MD5X' => 'MD5Y', ...)
Ben verilerin depolandığı nasıl emin değilim, ama biz 5 million * 16 bytes (keys) + 5 million * 16 bytes (values)
çarpın eğer ~ 180MB olsun.
:
veri kümesi sabittiryüzden sadece ondan okuyacaktır (DÜZENLEME tüm öğeleri saklamak için 750MB kadar kullanabilirsiniz gerçek memcached örneği ile denedikten sonra.).
Sorular:
- bu iyi ya da kötü tasarım mı?
- Memcached'ı hiçbir zaman (sunucu çökmedikçe) verileri yeniden yüklemek zorunda kalabilir mi? Bellek kapağının saklanan verilerden daha yüksek olduğunu varsayarsak? Değilse, aynı hedefe ulaşmak için hangi teknikleri kullanabilirim?
Çok teşekkürler!
Özel kullanım durumunuz için performans profili almalısınız. Ya da yerleşik bir önbelleğe sahip olacak gerçek bir DB kullanmayı düşünün. Tek bir diziyi saklarsanız, tüm diziyi içine bakmak zorunda kalmazsınız. –
Teşekkürler @PaulCollingwood, maalesef bir DB kullanamıyorum. Alkışlar – JoeSlav