기본 콘텐츠로 건너뛰기

라벨이 Redis인 게시물 표시

Django에서 Redis 캐싱 전략 구현하기

Django에서 Redis 캐싱 전략 구현하기 안녕하세요! 오늘은 Django 프로젝트에서 Redis를 활용한 효율적인 캐싱 전략을 구현하는 방법에 대해 알아보겠습니다. 왜 Redis를 사용할까요? Redis를 캐싱 솔루션으로 선택하는 이유는 다음과 같습니다: 빠른 성능 : 인메모리 데이터베이스로 초고속 데이터 접근 데이터 구조 다양성 : 문자열, 해시, 리스트, 세트 등 다양한 데이터 구조 지원 영구성 : 데이터를 디스크에 저장하여 서버 재시작 시에도 데이터 유지 분산 시스템 지원 : 클러스터링을 통한 확장성 풍부한 기능 : TTL, Pub/Sub, 트랜잭션 등 다양한 기능 제공 1. 기본 설정 1.1 Redis 설치 # Ubuntu/Debian sudo apt-get install redis-server # macOS brew install redis 1.2 Django Redis 설정 # settings.py CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", "PARSER_CLASS": "redis.connection.HiredisParser", "CONNECTION_POOL_CLASS": "redis.BlockingConnectionPool", "CONNECTION_POOL...

Django + Celery + Redis로 비동기 작업 처리하기 (실전 예제 포함)

Django + Celery + Redis로 비동기 작업 처리하기 (실전 예제 포함) 안녕하세요! 오늘은 Django에서 Celery와 Redis를 사용하여 비동기 작업을 처리하는 방법에 대해 알아보겠습니다. 이 조합은 이메일 발송, 데이터 처리, 파일 변환 등 시간이 오래 걸리는 작업을 비동기적으로 처리할 때 매우 유용합니다. 왜 비동기 처리가 필요할까요? 웹 애플리케이션에서 다음과 같은 작업들은 사용자 경험을 해칠 수 있습니다: 대용량 파일 처리 이메일 발송 외부 API 호출 복잡한 데이터 분석 이미지 처리 이러한 작업들을 동기적으로 처리하면 사용자는 작업이 완료될 때까지 기다려야 합니다. 비동기 처리를 통해 이러한 문제를 해결할 수 있습니다. 프로젝트 설정 먼저 필요한 패키지들을 설치합니다: pip install celery redis django-celery-results Redis 설치 (Windows) Windows에서는 Redis를 설치하기 위해 WSL2를 사용하거나, Docker를 사용하는 것을 추천드립니다: docker run -d -p 6379:6379 redis Django 설정 settings.py 에 Celery 설정을 추가합니다: # Celery 설정 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' CELERY_ACCEPT_CONTENT = ['json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json' CELERY_TIMEZONE = 'Asia/Seoul' # Celery Beat 설정 (주기적 작업) CELERY_BEAT_SCHEDULE = { 'che...