DRF & Django

[DRF] Redis vs RabbitMQ and setting

UnoCoding 2022. 2. 3. 09:43

RabbitMQ — 메시지 브로커

  1. 메시지를 다른 대기열로 보낼 수 있는 라우팅 시스템을 갖춤
  2. 메시지 우선순위 지원
  3. 크고 복잡한 메시지에 적합
  4. 속도보다 지속성이 중요한 서비스에 적합

 

Redis — 인메모리 Cache 서버

  1. Key-Value를 이용해, Celery가 처리할 작업을 보낸 후 Cache에서 해당 Key 제거
  2. Database에 접근하기 전, 메모리에서 Cache를 가져다 쓴다는 점에서 속도가 빠름
  3. 지속성이 중요하지 않고, 약간의 손실을 견딜 수 있는 짧은 보존 메시지에 적합

 

Redis docker-compose.file 

version: '3.7'
services:
    redis:
      image: redis:alpine
      command: redis-server --requirepass changeme --port 6379
      container_name: redis_boot
      hostname: redis_boot
      labels:
        - "name=redis"
        - "mode=standalone"
      ports:
              - 6379:6379

접근 : redis://default:password@{IpAddress}/0'

 

RabbitMQ docker-compose.file 

version: '3'
services:
  rabbitmq:
    image: 'rabbitmq:3-management-alpine'
    container_name: rabbitmq-stream
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      RABBITMQ_ERLANG_COOKIE: "RabbitMQ-My-Cookies"
      RABBITMQ_DEFAULT_USER: "admin"
      RABBITMQ_DEFAULT_PASS: "admin"

접근 : amqp://admin:admin@{ipaddress}//

'DRF & Django' 카테고리의 다른 글

[Django] Django에서 쓰이는 Context Manager  (0) 2023.01.31
[DRF] Serializers 개념  (0) 2022.08.08
[DRF] ORM 중복 제거  (0) 2022.03.10
[DRF] Redis, Celery 기본 세팅  (1) 2022.02.01