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

Menjalankan redis pada gambar nodejs Docker

Solusi terbaik adalah dengan menggunakan docker compose. Dengan ini, Anda akan membuat wadah redis, menautkannya, lalu memulai aplikasi node.js Anda. Hal pertama yang harus dilakukan adalah menginstal komposisi buruh pelabuhan yang dirinci di sini - (https://docs.docker.com/compose/install/).

Setelah Anda menjalankannya, Anda harus membuat docker-compose.yml di folder yang sama dengan dockerfile aplikasi Anda. Itu harus berisi yang berikut

version: '3'
services:
  myapp:
    build: .  
    ports:
     - "3011:3011"
    links:
     - redis:redis
  redis:
    image: "redis:alpine"

Kemudian redis akan dapat diakses dari aplikasi node.js Anda, bukan dari localhost:6379 anda akan menggunakan redis:6379 untuk mengakses instance redis.

Untuk memulai aplikasi Anda, Anda akan menjalankan docker-compose up , di terminal Anda. Praktik terbaik adalah menggunakan network alih-alih links tapi ini dibuat untuk kesederhanaan.

Ini juga dapat dilakukan sesuai keinginan, memiliki redis dan node.js pada gambar yang sama, Dockerfile berikut akan berfungsi, ini didasarkan pada apa yang ada dalam pertanyaan:

FROM node:carbon

RUN wget http://download.redis.io/redis-stable.tar.gz && \
    tar xvzf redis-stable.tar.gz && \
    cd redis-stable && \
    make && \
    mv src/redis-server /usr/bin/ && \
    cd .. && \
    rm -r redis-stable && \
    npm install -g concurrently   

EXPOSE 6379

WORKDIR /app

COPY package.json /app

RUN npm install

COPY . /app

EXPOSE 3011

EXPOSE 6379

CMD concurrently "/usr/bin/redis-server --bind '0.0.0.0'" "sleep 5s; node /app/src/server.js" 

Metode kedua ini adalah praktik yang sangat buruk dan saya telah menggunakan secara bersamaan alih-alih supervisor atau alat serupa untuk kesederhanaan. Tidur di CMD adalah untuk memungkinkan redis dimulai sebelum aplikasi benar-benar diluncurkan, Anda harus menyesuaikannya dengan yang paling cocok untuk Anda. Semoga ini bisa membantu dan Anda menggunakan metode pertama karena ini adalah latihan yang jauh lebih baik



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. apa strategi terbaik untuk menyinkronkan data antara DB dan redis cache

  2. kabel aksi berlangganan secara lokal, tetapi tidak di heroku

  3. Apakah Azure mendukung hal-hal seperti mongodb dan redis?

  4. ScaleGrid Hosting Terkelola Sepenuhnya untuk Redis™ Sekarang Tersedia di Azure

  5. Nodejs, tidak menunggu kueri Redis selesai sebelum melanjutkan eksekusi