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초만에 삭제되어 보이지 않는걸 알 수 있다.
'다양한 TIP' 카테고리의 다른 글
IE 접속하면 엣지로 redirect 된다면? (0) | 2022.02.14 |
---|---|
bash shell 개발시 scp 비밀번호 없이 보내려면 어떻게할까요? (0) | 2021.11.17 |
scp 명령어 사용방법 (0) | 2021.11.17 |
댓글