telnet을 이용한 memcached 관리

  • Post author:
  • Post category:칼럼
  • Post comments:1 Comment
  • Post last modified:February 8, 2020

캐싱 기능을 구현할 때 개인적으론 다음과 같은 과정을 밟는다.

  1. 캐싱 기능을 구현한다. 실제로 쓸 코드일 수도 있고 순전히 테스트용으로 작성한 코드일 수도 있다.
  2. 단위 테스트 코드를 이용해 앞서 작성한 캐싱 코드를 실제로 돌릴 준비를 한다.
  3. 단위 테스트를 실행한다.
  4. memcached 접속해 캐싱이 잘 되었나 확인한다.

여기서 알아야 할 것 두 가지! 우선 3번 단위 테스트 실행 단계에서 조심할 게 있다. 캐시 라이브러리가 캐시 서버에 연결해 캐싱 기능을 활성화할 때까지 기다려줘야 한다. 방금 작성한 캐싱 단위 테스트만 실행하면 캐시 서버에 연결할 여유가 없어 캐싱이 작동 안 할 가능성이 높다. 이런 경우에는

  1. 단위 테스트에 캐서 서버와의 연결을 보장하는 코드를 넣던가
  2. 다른 단위 테스트와 함께 캐싱 단위 테스트를 실행해서 시간적 여유를 확보하면 된다.

이제 memcached에 접속해 캐싱이 잘 됐나 확인해야 한다. memcached 관리 도구를 따로 설치하지 않았다면 간단히 telnet을 사용해도 된다. 로컬 호스트에 기본 포트 값으로 memcached를 실행했다면

telnet 127.0.0.1 11211

이렇게 접속한다. 이제 memcached Telnet Interface 문서를 참고해 터미널 화면에서 명령어를 치면 된다. 하지만 마음이 급하다면 이렇게 하자.

키 값을 아는 경우

캐시 라이브러리가 어떤 키 값으로 memcached에 데이터를 저장했는지 안다면 HappyHappy!

get 키이름

끝!

키 값을 모르는 경우

캐시 라이브러리의 구현 방식을 잘 몰라서 키 값이 어떻게 정해지는지 확신하지 못할 때는 조금 귀찮다. 우선 통계 명령어 stats items를 이용해 memcached에 저장된 모든 레코드(키/값)를 확인한다.

/

이 경우에는 식별자(slab id) 1, 2, 14, 20 에 해당하는 네 개의 레코드가 memcached에 있다. 이제 stats cachedump 식별자 \'출력할 키의 최대 개수\' 명령어를 사용하면,

stats cachedump 14 100
ITEM page/DateCacheable[20121123] [1387 b; 1362365408 s]
END

이렇게 키(20121123)와 값(1387 b; 1362365408 s)이 나온다. 그렇게 어렵지 않다. 귀찮긴 하지만.

Author Details
Kubernetes, DevSecOps, AWS, 클라우드 보안, 클라우드 비용관리, SaaS 의 활용과 내재화 등 소프트웨어 개발 전반에 도움이 필요하다면 도움을 요청하세요. 지인이라면 가볍게 도와드리겠습니다. 전문적인 도움이 필요하다면 저의 현업에 방해가 되지 않는 선에서 협의가능합니다.
0 0 votes
Article Rating
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments