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

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • RogerBuckChrist

    RogerBuckChr

    9 Temmuz 2011