SORU
21 ŞUBAT 2011, PAZARTESİ


Redis bellek bittiğinde ne yapar?

Bu kolay bir soru olabilir ama çok zor bir cevap bulmakta zorlanıyorum. Nasıl Redis 2.0 maksimum bellek tükeniyor ele? Nasıl kaldırmak için hangi bellek ya da tutmaya karar mı?

Teşekkürler

CEVAP
2 Mart 2011, ÇARŞAMBA


Eğer sanal bellek işlevi açık (yeni sürüm 2.0 veya 2.2, bence), sonra Redis başlar saklamak için "not-so-sık kullanılan" veri diski bellek biterse.

Eğer Redis sanal bellek devre dışı bırakılırsa, işletim sisteminin sanal bellek kullanılmış almaya başlıyor gibi görünüyor (takas gibi), ve büyük ölçüde performansı düşer.

Şimdi, aynı zamanda daha fazla bellek (varsayılan) kullanarak Redis engelleyen maxmemory bir parametre ile Redis yapılandırabilirsiniz.

Redis daha yeni sürümleri maxmemory ulaşıldığında çeşitli politikalar var:

  • uçucu-lru arasında bir anahtarını kaldırın bir olanlar ayarlamak için çalışıyor dolacak anahtarlar kullanılma çıkarın.
  • uçucu-ttl arasında bir anahtarını kaldırın bir olanlar ayarlamak için çalışıyor dolacak kısa kalan zaman Kaldır tuşları yaşamak.
  • uçucu-rastgele çıkarın bir olanlar arasında rastgele anahtar set sona erer.
  • allkeys-lru gibi uçucu-lru, ama her kaldıracak bir çeşit anahtar, her ikisi de normal tuşları veya tuşları bir set ile dolacak.
  • allkeys-rastgele uçucu-rastgele gibi, ama kaldıracak anahtarlar her türlü, hem de normal tuşları ve tuşları ile sona ayarlayın.

Eğer sadece bir set SONA anahtarları kaldıran bir politika seçerseniz, o zaman Redis bellek yetersiz çalıştığında, program sadece malloc iptal eder gibi görünüyor() işlemi. Bu, eğer daha fazla veri saklamak için çalışırsanız, işlem sadece sefil başarısız olur.

Daha fazla bilgi için bazı bağlantılar sadece bunun için benim sözüme olmamalı beri ():

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Le

    Anthony Le

    10 EKİM 2006
  • cosmicrocketman

    cosmicrocket

    17 NİSAN 2006
  • ibebrent

    ibebrent

    23 Temmuz 2007