SORU
12 HAZİRAN 2011, Pazar


Adı uzunluğu Redis performansını etkiliyor?

Redis ayrıntılı isim kullanmak için, örneğin set-allBooksBelongToUser:$userId severim.

Böyle iyi mi, yoksa bu performansı etkiler mi?

CEVAP
12 HAZİRAN 2011, Pazar


Kullanmaktan bahsediyorsun sen anahtarı aslında o kadar uzun değil.

Verdiğiniz bir set için, arama yöntemleri O(1) ' dir. Bir set (SDİFF, SUNİON, aynı zamanda kendinden) daha karmaşık operasyonlar(N). Şans $userId doldurma daha uzun bir anahtar kullanarak daha pahalı bir işlem olduğunu.

Redis sana "GİT"/redis-kriter.test src değiştirirseniz bir kıyaslama programı redis-benchmark) adlı gelir c "tuşuna, kısa anahtar çalıştırabilirsiniz make install sonra bir test . foo sadece o kadar

diff --git a/src/redis-benchmark.c b/src/redis-benchmark.c
--- a/src/redis-benchmark.c
    b/src/redis-benchmark.c
@@ -475,11  475,11 @@
         benchmark("MSET (10 keys)",cmd,len);
         free(cmd);

-        len = redisFormatCommand(&cmd,"SET foo:rand:000000000000 %s",data);
         len = redisFormatCommand(&cmd,"SET foo %s",data);
         benchmark("SET",cmd,len);
         free(cmd);

-        len = redisFormatCommand(&cmd,"GET foo:rand:000000000000");
         len = redisFormatCommand(&cmd,"GET foo");
         benchmark("GET",cmd,len);
         free(cmd);

İşte kısa anahtar 3 sonrakiler için test hızı"": . foo

59880.24 requests per second
58139.53 requests per second
58479.53 requests per second

İşte yine kaynak değiştirme ve anahtarı değiştirdikten sonra test hız "set-allBooksBelongToUser:1234567890":

60240.96 requests per second
60606.06 requests per second
58479.53 requests per second

Anahtarı yine":1234567890" bu verir: . ipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumloreipsumlorem değişen

58479.53 requests per second
58139.53 requests per second
56179.77 requests per second

Gerçekten çok uzun anahtarlar redis hızı üzerinde büyük bir etkisi yok bile. Ve bu, (1) O bir işlemdir. Daha karmaşık işlemleri bile az duyarlı olur.

Açıkça kalıyorlar tanıtan anahtarları olması büyük ölçüde kısaltılmış anahtarları bittiğinde herhangi bir ufacık hız performans daha ağır basar bence.

Eğer istersen al bu da, orada da bir -r [keyspacelen] parametre üzerinde redis-temel yarar sağlar oluşturun rastgele anahtarları (': rand:' onları), sadece artış boyutu öneki olarak test kod uzunluğu ne olursa olsun istedin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Easy Learn Tutorial

    Easy Learn T

    10 Kasım 2012
  • Alexey - servant of Christ

    Alexey - ser

    15 EYLÜL 2007
  • Sergio Lafuente Rubio

    Sergio Lafue

    11 Aralık 2008