본문 바로가기
다양한 TIP

memcached 값 확인방법

by 유기농프로그래밍 2021. 12. 17.
반응형

memcached를 사용하면, 여러 프로세스에서 같은 자원을 공유할 수 있다.

shared memory 같은 느낌이랄까.

memcached는 무엇일까? 바로 daemon(대몬)이다. shared memory 처럼 메모리상으로 저장되어 있는게 아니라 프로세스로서 떠 있는것이다. 따라서 재시작이 되면 저장한 값이 날아간다는 것을 주의해야한다.

자 그럼, memcached 내에 들어가서 값을 확인해보자.

memcached 가 설치되어 있는 쉘로 들어가서 telnet을 이용하여 접속하자.

telnet localhost 11211

포트가 11211 이기 때문에 로컬에 11211로 접속한다.

직접 set을 할 수 있고, get을 할 수 있다.

set을 한번 보자. 빨간색으로 쓴 값을 채워야한다.

set <key meta_data> <expiration> <length_of_bytes>

ex)

저장된 것을 보려면 get으로 보면 된다.

(원하는 key의 값을 입력하면 value를 얻을 수 있다)

get <key>

ex)

memcached는 만료시간이라는 값이 있다.(expiration)

위에서 set할 때 meta_data와 함께 expiration 을 넣을 수 있다.

위의 set에서는 expiration을 100초로 두었기 때문에 100초 뒤에 get을 하면 sample이 보이지 않는다.

 


stats

stats를 보면 현재 memcached의 정보를 볼 수 있다.

다양한 내용이 있는데, 이 stats이라는 명령어를 이용해서 expiration을 알아볼 것이다.

 

stats 명령어 옵션 중에 stats slabs 를 하면 slabs의 통계를 가져온다.

(캐시 내 저장하기 위해 만들고 할당한 내역을 보여준다, 각 개별 slab과 전체 slab의 통계정보를 볼 수 있다)

 

자 그럼 만료시간을 어떻게 볼 수 있는가?

아래와 같은 명령어를 이용하면 된다.

stats cachedump <slab class> <number of items to dump>

저 값은 unix time stamp이기 때문에 정확한 만료시간을 눈으로 보기 위해서는

shell에서 date 명령어를 쓰면 된다.

date -d @<unix timestamp>

만료시간을 무한으로 하려면 어떻게 할까?

set할 때 expiration 값을 0으로 두면 된다.

아래와 같이 stats cachedump로 보면 "0 s" 를 확인할 수 있다.

expiration의 최대 값은 30일(2592000)까지만 가능하다.

그 이상의 값을 넣으면 1로 바뀌어서 들어가게 된다.

아래 예시와 같이 Max 값을 넣으면 unix timestamp가 잘 찍혀나오지만

그 값을 넘어가면 1초만에 삭제되어 보이지 않는걸 알 수 있다.

 

반응형

댓글