본문 바로가기

cache

(Django) CacheOps - ORM에 Redis Cache 쉽게 적용하기 django-cacheops는 Django에 Redis Cache를 쉽게 적용하고, 관리할 수 있도록 도와주는 라이브러리이다. Cacheops의 가장 큰 장점은 ORM에 캐시를 간편하게 적용할 수 있단 점이다. 이번 포스팅에서는 Cacheops의 특징과 주의할점에 대해서 정리해보고자 한다. Cacheops의 특징 A. ORM Cache A-1. 사용방법 모델에서 캐시를 바라보도록 변경하고 싶으면, 설정 파일에 아래와 같은 옵션을 추가해주면 된다. CACHEOPS = { 'auth.user': {'ops': 'get', 'timeout': 60}, } 위와 같이 추가하면, User 모델을 get으로 조회하는 경우, DB보다 캐시를 먼저 바라보게 된다. User.objects.get(user_id=1) 특정..
[Redis]Redis에서 LRU Cache를 사용하는 방법 Using Redis as an LRU cache Redis에서는 새로운 값이 추가되었을 때, 자동으로 오래된 데이터를 지워주는 기능이 있다. Memcached 시스템이서도 이러한 기능이 있기 때문에, 개발자들 사이에서는 익숙한 기능이다. 이 포스트에서는 메모리 사용량 제한을 위해서 사용하는 값인 maxmemory, 메모리 관리 정책인 eviction policy, 원조 LRU와 REDIS LRU의 차이에 대해서 이야기할거다. Maxmemroy 설정하기 maxmemory 값은 redis.conf 파일이나 config set 커맨드 명령문으로 설정할 수 있다.maxmemory 100mbmaxmemory를 설정해주지 않으면, 64bit 시스템에서는 초기값이 0으로 설정된다. 32bit 시스템에서는 3GB으로..
[couchbase]카우치 베이스에서 테이블이란? 카우치베이스와 RDB의 논리적 개념 차이에 대해서 헷갈려서, 찾아봤다. 카우치베이스의 bucket은 RDB의 database의 개념과 유사하다고 한다. 그러면 카우치베이스의 table의 개념은 무엇일까 궁금했다. 카우치베이스에서는 별도의 TABLE이 없다. 때문에 document에 type이라는 속성을 추가해서, 유사한 데이터를 묶어서 관리해주어야 한다. 참고 : http://blog.couchbase.com/10-things-developers-should-know-about-couchbase 위는 카우치베이스 사용할 때 알아야하는 10가지에 대한 포스팅의 캡쳐 이미지이다. 하나의 버킷은 RDBMS에서 database로 볼 수 있다. 때문에 다른 속성을 가진 도큐먼트여도 같은 버킷에 저장되어야 한다. ..
[카우치베이스]Insert와 Select의 시간차 금일 과제를 진행하면서 카우치베이스에서 Insert를 하고난 직후에 Select를 하면 Insert했던 값이 반영이 안되는 이슈가 있었다. 왜 그럴까? 이유를 확인한다면 이걸 수정하려면 어떻게 해야할까? 궁금했다. 왜 그럴까?1. insert의 메모리 객체 반영론카우치베이스의 Insert 메서드(add)는 데이터가 디스크에 완전히 반영되기 전에 메모리 객체에 반영되고 나면 성공 메시지를 되돌려 준다. 입력된 데이터는 디스크에 저장되고, 이 데이터가 다시 복제 설정된 개수만큼 다른 노드로 복사되게 된다. >즉, 디스크에 값이 저장되기 전에 true를 리턴해줘서, select를 할 때 직전에 insert 한 값이 바로 반영이 안되었던 거다. (그렇다면 select는 디스크에 직접 접근해서 계산해온다는 거겠지..