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

Apakah redis di Heroku dimungkinkan tanpa addon?

Menjalankan redis pada dyno adalah ide yang menarik. Anda mungkin perlu membuat redis buildpack agar dynos Anda dapat mengunduh dan menjalankan redis. Karena "redis tidak memiliki dependensi selain kompiler GCC dan libc yang berfungsi", ini secara teknis memungkinkan.

Namun, berikut adalah beberapa masalah yang mungkin Anda alami:

  1. Heroku dynos tidak memiliki alamat IP statis

    "dyno tidak memiliki alamat IP statis .. Anda tidak akan pernah bisa mengakses dyno secara langsung dengan IP"

    Bahkan jika Anda mengatur dan menjalankan Redis pada dyno, saya tidak mengetahui cara untuk menemukan instance dyno itu dan mengirimkannya permintaan redis. Ini berarti server Redis Anda mungkin harus berjalan pada dyno yang sama dengan server web/aplikasi utama Anda.

    Ini juga berarti jika Anda mencoba menskalakan aplikasi dengan membuat lebih banyak web dyno, Anda juga akan membuat lebih banyak instance redis lokal. Data tidak akan dibagikan di antara mereka. Bagi saya ini bukan desain yang skalabel, tetapi jika aplikasi Anda cukup kecil sehingga hanya memerlukan satu web dyno, ini mungkin berfungsi.

  2. Heroku dynos memiliki sistem file singkat

    "tidak ada file yang ditulis yang terlihat oleh proses di dyno lain dan file apa pun yang ditulis akan dibuang saat dyno dihentikan atau dimulai ulang"

    Secara default Redis menulis file RDB dan log AOF ke disk. Anda harus mencadangkannya secara teratur di suatu tempat sehingga Anda dapat mengambil dan memulihkan setelah dyno Anda restart. Lihat dokumentasi tentang ketekunan Redis.

  3. Dino Heroku sering di-boot ulang

    "Dyno didaur ulang setidaknya sekali sehari, atau setiap kali dyno manifold mendeteksi kesalahan pada perangkat keras yang mendasarinya"

    Anda harus dapat memulai server redis setiap kali dyno memulai dan memulihkan data.

  4. Heroku dynos memiliki RAM 512MB

    "Setiap dyno dialokasikan memori 512MB untuk beroperasi di dalamnya"

    Jika server Redis Anda berjalan pada dyno yang sama dengan server web Anda, kurangi RAM yang diperlukan untuk aplikasi utama Anda. Berapa banyak memori Redis yang Anda butuhkan?

    Berikut adalah beberapa pertanyaan yang mencoba memperkirakan dan melacak penggunaan memori Redis:

    • Redis:Rasio Ukuran Basis Data ke Memori?
    • Membuat Profil Penggunaan Memori Redis

--

Secara keseluruhan: Saya sarankan membaca 12 Factor Apps untuk memahami lebih banyak tentang model aplikasi yang dimaksudkan heroku.

Versi singkatnya adalah bahwa dyno dimaksudkan untuk menjadi pekerja independen yang dapat dengan mudah dibuat dan dibuang untuk memenuhi permintaan, dan bahwa dyno mengakses berbagai sumber daya untuk membaca atau menulis data dan melayani aplikasi Anda. Instance redis adalah contoh resource. Seperti yang Anda lihat dari item di atas, dengan menggunakan add-on redis, Anda mendapatkan sesuatu yang dijamin statis, stabil, dan dapat diakses.

Bahan bacaan:

  1. http://www.12factor.net/ - khususnya Proses dan Layanan
  2. Model Proses Heroku
  3. Blog Heroku - Model Proses


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Apakah daftar Redis atau setel utas metode pop aman?

  2. Perintah redis untuk mendapatkan semua kunci yang tersedia?

  3. Cara menganalisis dan mengoptimalkan penggunaan memori di Redis

  4. Cara mengatur penangan di RedMQ dari acara yang diangkat di domain saya

  5. Performa Redis vs Disk dalam aplikasi caching