memcached가 메모리에만 저장되기 때문에 서버 재시작하면 내용이 모두 날라갑니다. memcached가 캐시에 최적화되어 개발되어 있기때문에 당연한 거지만… 사용법이 간단하고, 퍼포먼스가 좋다보니 memcached의 간편함과 DB의 persistence를 모두 충족할수 있는 프로그램을 찾게되는듯하네요.
memcachedb는 memcached와 Berkeley DB(오라클이 인수했더군요)를 이용하여 만들어졌으며, 클라이언트는 memcached 프로토콜을 이용하여 접속하며, key, value는 메모리가 아니라 DB에 저장됩니다. 단순한 구조로 되어 있기 때문에 복잡한 DB에 비하면 훨씬 더 빠르게 동작합니다. 또한 replication을 지원하기 때문에, read를 분산하여 처리할수 있습니다. 다만, memcached처럼 여러개의 서버를 파티션해서 사용할수는 없습니다. replication으로 연결하면 write은 모든 서버에서 일어나게 됩니다.
memcachedb와 유사한 프로젝트로 tugela cache가 있습니다. 현재 소스가 더이상 관리가 되지 않고 있지만, tugela cache도 memcached와 Berkeley DB를 이용하여 만들어졌습니다. memcachedb와의 차이점은 persistency를 추구하지 않는다는 점입니다. 메모리보다 많은 캐시가 필요할때 디스크에 쓰는 형태입니다. replication이 없고 memcached와 마찬가지로 read/write를 모두 분산할수 있습니다. memcached에서 캐시 사이즈가 메모리보다 클때 사용하기에는 memcachedb보다는 tugela cache가 적절합니다.
회사에서 세션정보를 저장하는 데몬을 직접 작성하여, 메모리로 세션을 관리하고, 주기적으로 세션정보를 파일로 쓰고, 시작할때
파일에서 세션정보를 읽도록 해서 관리하는데 이거 작성하는것도 일이죠. 이럴 경우 memcachedb를 이용하면 좋을듯하네요…