Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Chạy redis trên hình ảnh nodejs Docker

Giải pháp tốt nhất sẽ là sử dụng trình soạn thảo docker. Với điều này, bạn sẽ tạo một vùng chứa redis, liên kết với nó rồi khởi động ứng dụng node.js của bạn. Điều đầu tiên là cài đặt docker soạn chi tiết tại đây - (https://docs.docker.com/compose/install/).

Khi bạn đã thiết lập và chạy nó, Bạn nên tạo một docker-compos.yml trong cùng một thư mục với dockerfile của ứng dụng. Nó phải chứa những điều sau

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

Sau đó, redis sẽ có thể truy cập được từ ứng dụng node.js của bạn nhưng thay vì localhost:6379 bạn sẽ sử dụng redis:6379 để truy cập phiên bản redis.

Để khởi động ứng dụng của mình, bạn sẽ chạy docker-compose up , trong thiết bị đầu cuối của bạn. Phương pháp hay nhất là sử dụng network thay vì các liên kết links nhưng điều này được tạo ra vì sự đơn giản.

Điều này cũng có thể được thực hiện như mong muốn, có cả redis và node.js trên cùng một hình ảnh, Dockerfile sau sẽ hoạt động, nó dựa trên những gì trong câu hỏi:

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" 

Phương pháp thứ hai này thực sự không tốt và tôi đã sử dụng đồng thời thay vì người giám sát hoặc công cụ tương tự vì đơn giản. Ngủ trong CMD là cho phép redis bắt đầu trước khi ứng dụng thực sự được khởi chạy, bạn nên điều chỉnh nó cho phù hợp với bạn nhất. Hy vọng điều này sẽ hữu ích và bạn sử dụng phương pháp đầu tiên vì nó thực hành tốt hơn nhiều



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Redis:NOAUTH Yêu cầu xác thực nhưng không có cài đặt mật khẩu

  2. rắc rối trong việc thiết lập phụ trợ nhiệm vụ cần tây bằng Python

  3. Cách tách ứng dụng khởi động mùa xuân redis và phiên khởi động mùa xuân toàn cầu

  4. Khởi động mùa xuân + Redis - Tạo khóa lạ

  5. Redis - bất kỳ cách nào để kích hoạt một sự kiện khi một giá trị không còn được tích cực ghi vào?