nosql 중 (TTL) expire callback event를 직접 전달받을 수 있는 스토리지는 2가지가 있는 것 같다.
(사실 다른 nosql을 써도 되지만 cron job과 같은 scheduler로 모든 데이터의 ttl expire 체크는 위험스러울 수 있어서..)
1. redis
2. couchbase
그러나 간접적으로 expire callback event를 받을 수 있는 스토리지는 1가지가 더 있다.
1. mongodb
redis의 expired item의 callback은 바로 오지 않고, get 하는 시점에 ttl expire 시간을 확인한 후, expire 된 값일 때에만 callback 이벤트를 전달한다.
(관련 내용 : http://redis.io/topics/notifications)
couchbase는 expire callback 을 http url로 받을 수 있다.
memcached를 들고 있는 터라 조금은 무거운 느낌이다.
(관련 내용 : http://blog.couchbase.com/sites/default/files/uploads/all/Expire%20Cycle.png)
mongodb는 standalone이 아닌 clusterset으로 실행시 oplog를 받을 수 있다. document에 op가 "d"가 있고 TTL 지정한 db.collection으로 검색해 보면, TTL expire event가 발생했음을 찾을 수 있다. (expire 시간에 바로 발생하지 않고, 1분 단위로 cron 체크해서 oplog로 남기는 것 같다.)
'nosql' 카테고리의 다른 글
[mongodb] mongodb 3.0의 mongod 명령어의 주요 디폴트 설정 (0) | 2015.09.21 |
---|---|
[mongodb] 몽고DB 설치와 mtools(mlaunch) (0) | 2015.09.18 |
[Spark] 펌 - Spark에 대한 요약 슬라이드 (0) | 2015.07.17 |
[redis] keys 대신 scan (0) | 2015.07.02 |
[redis] 다중 키 삭제 (delete) (0) | 2015.06.24 |