Redis
 sql >> Teknologi Basis Data >  >> NoSQL >> Redis

Redis:Amazon EC2 vs Elasticache

tl;dr:Elasticache memaksa Anda untuk menggunakan satu contoh redis, yang kurang optimal.

Versi panjang:

Saya menyadari ini adalah posting lama (2 tahun pada saat penulisan ini) tetapi saya pikir penting untuk mencatat poin yang tidak saya lihat di sini.

Pada elasticache, penerapan redis Anda dikelola oleh Amazon. Ini berarti Anda terjebak dengan apa pun yang mereka pilih untuk menjalankan redis Anda.

Redis menggunakan satu utas eksekusi untuk membaca/menulis. Ini memastikan konsistensi tanpa penguncian. Ini adalah aset utama dalam hal kinerja untuk tidak mengelola kunci dan kait. Namun, konsekuensi yang tidak menguntungkan adalah jika EC2 Anda memiliki lebih dari 1 vCPU, mereka tidak akan digunakan. Ini adalah kasus untuk semua instance elasticache dengan lebih dari satu vCPU.

Ukuran instance elasticache default adalah cache.r3.large , yang memiliki dua inti.

Faktanya, ada sejumlah ukuran instans dengan beberapa vCPU. Banyak peluang untuk masalah ini terwujud.

Tampaknya Amazon sudah mengetahui masalah ini, tetapi mereka tampaknya sedikit mengabaikannya.

Bagian yang membuat ini sangat relevan dengan pertanyaan ini adalah bahwa pada EC2 Anda (karena Anda mengelola penerapan Anda sendiri), Anda dapat menerapkan multi-tenancy . Ini berarti Anda memiliki banyak contoh proses redis yang mendengarkan pada port yang berbeda. Dengan memilih port mana untuk membaca/menulis ke/dari dalam aplikasi berdasarkan hash kunci catatan, Anda dapat memanfaatkan semua vCPU Anda.

Sebagai catatan tambahan; penerapan redis elasticache pada mesin multi-inti harus selalu berkinerja buruk dibandingkan dengan penerapan elasticache memcached pada ukuran instans. Dengan multi-tenancy redis cenderung menjadi pemenang.

Pembaruan:

Amazon sekarang menyediakan metrik terpisah untuk CPU instans redis Anda, EngineCPUUtilization. Anda tidak perlu lagi menghitung CPU Anda dengan perkalian yang buruk, tetapi multi-tenancy masih belum diterapkan.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Koneksi Docker Redis ditolak

  2. Mendiagnosis kegagalan redis-server yang tidak terduga

  3. MurmurHash - apa itu?

  4. Cara menghapus kunci yang cocok dengan pola di Redis Cluster

  5. Perintah Kustom Redis