[Django]Redis를 활용한 캐싱

🌟Django에 Redis를 이용하여 캐싱하기.

🎯Redis(Remote Dictionary Server) 란?

redis는 비관계형 데이터베이스인 NOSQL의 일종입니다. 프로세스로 존재하며 메모리기반으로 키-값 구조로 데이터를 저장하여 “키-값” 구조 데이터를 관리하는 시스템이라고 할 수 있습니다. 여러가지 형태의 데이터를 지원하며 특히 리스트형식의 데이터처리에 유리합니다.(MYSQL대비 10배나 빠르다고…) 주로 Cache나 Persistent Store로 사용합니다. 앞서 다루었던 memcached와 속도,성능측면에서 대부분 비슷하나 다음 세가지에서 차이를 보입니다.

  1. 데이터 저장위치

    • Memcached : 메모리에만 저장됩니다.
    • Redis : 메모리와 디스크 두쪽 다 저장됩니다.
  2. 저장소 메모리 재사용여부

    • Memcached : 메모리가 꽉 차면 LRU방식으로 데이터를 삭제합니다.
    • Redis : 명시적으로 데이터를 삭제해야만 데이터가 삭제됩니다.
  3. 지원하는 형식

    • Memcached : 문자열만 지원합니다.
    • Redis : string list set sorted set hash형을 지원합니다.

🎯 django-redis 적용해보기

적용해볼 프로젝트는 LikelionQNA(https://github.com/Juhyung990122/LikelionQnA)입니다. 홈페이지 특성상 질문당 이미지를 첨부하게 되고 이 질문내용에 대해 수정을 지원하지 않으므로 이미지는 사실상 고정 데이터입니다. 타 데이터에 비해 크기가 큰데다가 변동이 없는 데이터이므로 캐시로 처리하면 좋을 것이라 생각하여 해당 프로젝트에 적용해보고자 합니다.

(추가예정)

https://jupiny.com/2018/02/27/caching-using-redis-on-django/ https://ict-nroo.tistory.com/133 http://recipes.egloos.com/5170809


Written by@이주형
平常心

GitHubFacebook