Azure Yönetilen Redis ile geliştirme

Bu makalede, Azure Yönetilen Redis için kod geliştirme ele alınmaktadır.

Bağlantı dayanıklılığı ve sunucu yükü

İstemci uygulamaları geliştirirken , bağlantı dayanıklılığı ve sunucu yükünü yönetmeye yönelik en iyi yöntemleri göz önünde bulundurun.

Daha fazla anahtarı ve daha küçük değerleri göz önünde bulundurun

Azure Yönetilen Redis daha küçük değerlerle en iyi şekilde çalışır. Verileri birden çok anahtara yaymak için daha büyük veri öbeklerini daha küçük öbeklere bölmeyi göz önünde bulundurun. İdeal değer boyutu hakkında daha fazla bilgi için bu makaleye bakın.

Büyük istek veya yanıt boyutu

Büyük bir istek veya yanıt zaman aşımlarına neden olabilir. Örneğin, istemcinizdeki zaman aşımı değerini 1 saniye olarak yapılandırdığınız varsayılır. Uygulamanız aynı anda iki anahtar (örneğin, A ve B) ister (aynı fiziksel ağ bağlantısını kullanarak). Çoğu istemci, istek ardışık düzenlemeyi destekler; burada hem A hem de B istekleri, yanıtları beklenmeden biri diğerinin ardından gönderilir. Sunucu yanıtları aynı sırada geri gönderir. A yanıtı büyükse, daha sonraki istekler için ayrılan zaman aşımı süresinin büyük kısmını tüketebilir.

Aşağıdaki örnekte, A ve B istekleri sunucuya hızlı bir şekilde gönderilir. Sunucu, A ve B yanıtları hızla göndermeye başlar. Veri aktarım süreleri nedeniyle, sunucu hızlı yanıt vermiş olsa da yanıt B, zaman aşımına uğrayan yanıt A'in arkasında beklemek zorunda kalır.

|-------- 1 Second Timeout (A)----------|
|-Request A-|
     |-------- 1 Second Timeout (B) ----------|
     |-Request B-|
            |- Read Response A --------|
                                       |- Read Response B-| (**TIMEOUT**)

Bu istek ve yanıt düzenini ölçmek zordur. İstemci kodunuzu büyük istek ve yanıtları izlemek üzere donatabilirsiniz.

Büyük yanıt boyutları için çözünürlükler farklılık gösterir ancak şunlardır:

  • Uygulamanızı birkaç büyük değer yerine çok sayıda küçük değer için iyileştirin.
  • Daha yüksek bant genişliği özellikleri elde etmek için sanal makinenizin (VM) boyutunu artırın.
    • İstemci veya sunucu VM'nizde daha fazla bant genişliği, daha büyük yanıtlar için veri aktarım sürelerini azaltabilir.
    • Her iki makinedeki mevcut ağ kullanımınızı geçerli VM boyutunuzun sınırlarıyla karşılaştırın. Yalnızca sunucuda veya yalnızca istemcide daha fazla bant genişliği yeterli olmayabilir.
  • Uygulamanızın kullandığı bağlantı nesnelerinin sayısını artırın.
    • Farklı bağlantı nesneleri üzerinden istekte bulunmak için dönüşümlü yöntem kullanın.

Boru hattı kullanımı

Redis kanalı oluşturmayı destekleyen bir Redis istemcisi seçmeyi deneyin. Kanal oluşturma, ağı verimli bir şekilde kullanmanıza ve mümkün olan en iyi aktarım hızını elde etmelerine yardımcı olur.

Pahalı işlemlerden kaçının

KEYS komutu gibi bazı Redis işlemleri pahalıdır ve bunlardan kaçınmanız gerekir. Uzun süre çalışan komutlarla ilgili dikkat edilmesi gereken bazı noktalar için bkz . uzun süre çalışan komutlar.

Uygun bir katman seçin

Azure Yönetilen Redis, Bellek Optimizasyonu, Dengeli, İşlem Optimizasyonu ve Flash Optimizasyonu katmanlarını sunar. Katman seçme hakkında daha fazla bilgi için bkz. Ölçeklendirme. Doğru katmanı seçmek ve bağlantı ayarlarını doğrulamak için performansı test edin. Daha fazla bilgi için bkz . Performans testi.

Uygun bir kullanılabilirlik modu seçin

Azure Yönetilen Redis, yüksek kullanılabilirlik yapılandırmasını etkinleştirme veya devre dışı bırakma seçeneği sunar. Yüksek kullanılabilirlik modunu devre dışı bırakırsanız, AMR örneğinizdeki veriler çoğaltılmaz ve Redis örneğiniz bakım sırasında kullanılamaz. AMR örneğindeki tüm veriler planlı veya plansız bakım sırasında kaybolur. Yüksek kullanılabilirliği yalnızca geliştirme veya test iş yükleriniz için devre dışı bırakın. Yüksek kullanılabilirliğe sahip Redis örneklerinin performansı, yükü birincil ve çoğaltma veri parçası arasında dağıtma açısından kritik öneme sahip olan veri çoğaltmasının olmaması nedeniyle de düşük olabilir.

Redis örneğiyle aynı bölgedeki istemci

Redis örneğinizi ve uygulamanızı aynı bölgede bulun. Farklı bir bölgedeki Bir Redis'e bağlanmak gecikme süresini önemli ölçüde artırabilir ve güvenilirliği azaltabilir.

Azure dışından bağlanabilirsiniz ancak özellikle uygulamanızın veya veritabanınızın performansını hızlandırmak için Redis kullanırken bu önerilmez. Redis sunucusunu yalnızca bir anahtar/değer deposu olarak kullanıyorsanız, gecikme birincil sorun olmayabilir.

Genel IP adresi yerine ana bilgisayar adına güvenmeyi tercih edin.

Önbelleğinize atanan IP adresi, bir ölçeklendirme işlemi veya arka uç geliştirmesi sonucunda değişebilir. Açık bir genel veya özel IP adresi yerine konak adına güvenin. Sanal ağdaki bir önbellek için yapılandırılan statik IP adresi sabit bir garanti değildir ve değişiklikler nadir olsa da belirli işlemler sırasında değişebilir.

Azure Yönetilen Redis'teki ana bilgisayar adları şöyle görünür: <DNS name>.<Azure region>.redis.azure.net

TLS şifrelemesi kullanma

Azure Yönetilen Redis varsayılan olarak TLS şifreli iletişim gerektirir. TLS sürüm 1.2 ve 1.3 şu anda desteklenmektedir. İstemci kitaplığınız veya aracınız TLS'yi desteklemiyorsa, şifrelenmemiş bağlantıları etkinleştirmek mümkündür.

Bellek kullanımını, CPU kullanım ölçümlerini, istemci bağlantılarını ve ağ bant genişliğini izleme

Üretimde Azure Yönetilen Redis örneğini kullanırken Used Memory Percentage, CPU ölçümleri ve Connected Clients için uyarılar ayarlayın. Bu ölçümler tutarlı olarak %75'in üzerindeyse örneğinizi daha büyük bir belleğe veya daha iyi aktarım hızı katmanına ölçeklendirmeyi göz önünde bulundurun. Daha fazla ayrıntı için bkz. ne zaman ölçeklendirilecek. Belleğin nasıl bildirildiği ve kapasitenin nasıl planlandığı hakkında ayrıntılı bilgi için bkz. bellek yönetimi.

Veri kalıcılığını veya veri yedeklemeyi etkinleştirmeyi göz önünde bulundurun

Redis, varsayılan olarak kısa ömürlü veriler için tasarlanmıştır. Bu, nadir durumlarda bakım veya kesinti gibi çeşitli durumlarda verilerinizin kaybedilebileceği anlamına gelir. Uygulamanız veri kaybına duyarlıysa, veri dışarı aktarma işlemini kullanarak veri kalıcılığını veya düzenli veri yedeklemeyi etkinleştirin.

Veri kalıcılığı özelliği, önbellek kapandığında veriler için otomatik olarak hızlı bir kurtarma noktası sağlar. Hızlı kurtarma mümkündür çünkü özellik RDB veya AOF dosyasını önbellek örneğine bağladığı yönetilen bir diskte depolar. Kullanıcılar disk üzerindeki kalıcılık dosyalarına erişemez ve bunları başka hiçbir AMR örneği kullanamaz.

Birçok müşteri, önbelleklerindeki verilerin düzenli aralıklarla yedeklerini almak için kalıcılığı kullanmak ister. Bu amaçla veri kalıcılığını kullanmayın. Bunun yerine içeri/dışarı aktarma özelliğini kullanın. RdB biçimindeki verilerin kopyalarını doğrudan seçtiğiniz depolama hesabına aktarabilir ve veri dışarı aktarma işlemini istediğiniz sıklıkta tetikleyebilirsiniz. Dışarı aktarmayı portaldan veya CLI, PowerShell veya SDK araçlarını kullanarak tetikleyebilirsiniz.

İstemci kitaplığına özgü yönergeler

Daha fazla bilgi için bkz. Azure Managed Redis istemci kitaplıkları.