[python] Django에서 redis를 어떻게 사용할 수 있습니까?

redis-cache에 대해 들어 봤지만 정확히 어떻게 작동합니까? 어떻게 든 rdbms 쿼리를 캐싱하여 django와 내 rdbms 사이의 레이어로 사용됩니까?

아니면 데이터베이스로 직접 사용되어야합니까? 그 github 페이지가 로그인 세부 정보를 다루지 않기 때문에 나는 의심 스럽습니다. 설정이 없습니다. 단지 일부 구성 속성을 설정하라고 알려줍니다.



답변

이 Redis 용 Python 모듈은 readme에 명확한 사용 예가 있습니다. http://github.com/andymccurdy/redis-py

Redis는 RAM 캐시로 설계되었습니다. 기본 GET 및 SET 키와 사전과 같은 컬렉션 저장을 지원합니다. Redis에 출력을 저장하여 RDBMS 쿼리를 캐시 할 수 있습니다. 목표는 Django 사이트의 속도를 높이는 것입니다. 속도가 필요할 때까지 Redis 또는 다른 캐시를 사용하지 마세요. 너무 일찍 최적화하지 마세요.


답변

Redis가 사물을 메모리에 저장한다고해서 그것이 캐시라는 의미는 아닙니다. 나는 사람들이 그것을 데이터의 영구 저장소로 사용하는 것을 보았습니다.

캐시로 사용할 수 있다는 것은 고성능 스토리지로 유용하다는 힌트입니다. Redis 시스템이 다운되면 디스크에 다시 기록되지 않은 데이터가 손실 될 수 있습니다. 이러한 위험을 완화 할 수있는 몇 가지 방법이 있습니다 (예 : 상시 대기 복제본). 은행이나 상점을 운영하는 것처럼 데이터가 ‘미션 크리티컬’한 경우 Redis가 최선의 선택이 아닐 수 있습니다. 그러나 지속적인 라이브 데이터 또는 일부 소셜 상호 작용 항목으로 트래픽이 많은 게임을 작성하고 데이터 손실 가능성을 상당히 수용 할 수 있도록 관리한다면 Redis를 살펴볼 가치가 있습니다.

어쨌든 요점은 남아 있습니다. 예, Redis는 데이터베이스로 사용할 수 있습니다.


답변

Redis는 기본적으로 수많은 종소리와 휘파람이있는 ‘기억 속’KV 스토어입니다. 매우 유연합니다. 캐시와 같은 임시 저장소로 사용하거나 데이터베이스와 같은 영구 저장소로 사용할 수 있습니다 (다른 답변에서 언급 한주의 사항 포함).

Django와 결합했을 때 Redis의 가장 일반적인 사용 사례는 아마도 ‘응답’과 세션을 캐시하는 것입니다.

여기 백엔드있다 https://github.com/sebleier/django-redis-cache/ 여기 장고 문서에서 우수한 문서 : https://docs.djangoproject.com/en/1.3/topics/cache/ .

나는 최근에 https://github.com/erussell/django-redis-status 를 사용하여 캐시를 모니터링 하기 시작했습니다 . (redis에서 maxmemory를 구성하지 않으면 그 결과가 그리 유용하지 않습니다).


답변

Django 앱에서 분산 작업을위한 대기열로 Redis를 사용할 수도 있습니다. Celery 또는 Python RQ 의 메시지 브로커로 사용할 수 있습니다 .


답변

기본 데이터베이스로서의 Redis

예, Redis 키-값 저장소를 기본 데이터베이스로 사용할 수 있습니다. Redis는 키-값 쌍을 저장할뿐만 아니라 다음과 같은 다양한 데이터 구조도 지원합니다.

  1. 명부
  2. 세트
  3. 정렬 된 세트
  4. 해시
  5. 비트 맵
  6. 하이퍼 로그 로그

Redis 데이터 유형 공식 문서

Redis는 메모리 키-값 저장소에 있으므로 Redis 서버 오류가 발생하면 데이터가 손실된다는 사실을 알고 있어야합니다.

Redis는 데이터 확인 공식 문서를 유지할 수도 있습니다.

Redis Persistence 공식 문서


캐시로서의 Redis

예 Redis는 Django와 RDBMS 사이에 있습니다.

작동 원리

given a URL, try finding that page in the cache if the page is in the cache: return the cached page else: generate the page save the generated page in the cache (for next time) return the generated page

Django의 캐시 프레임 워크 공식 문서


Django에서 Redis를 사용하는 방법

Django 애플리케이션에 redis python 클라이언트 redis-py 를 사용할 수 있습니다 .

Redis Python 클라이언트 redis-py Github

Django 캐시 백엔드에 Django-redis 를 사용할 수 있습니다 .

Django-redisredis-py를 기반으로 하고 django 애플리케이션과 관련된 추가 기능을 추가했습니다.

Django-redis 문서 Github

다른 라이브러리도 있습니다.


Redis 사용 사례 및 데이터 유형

일부 사용 사례

  • 세션 캐시
  • 실시간 분석
  • 웹 캐싱
  • 리더 보드

핵심 데이터 구조 유형별 상위 Redis 사용 사례


Redis를 사용하는 대기업

 Twitter GitHub Weibo Pinterest Snapchat Craigslist Digg StackOverflow Flickr 


답변