memcached 프로 토 콜 및 명령
다섯 가지 기본 memcached 명령 을 사용 하여 가장 간단 한 작업 을 수행 할 것 입 니 다.이 명령 과 동작 은 다음 과 같 습 니 다:
set add replace get delete 세 번 째 명령 은 memcached 에 저 장 된 키 값 을 조작 하 는 표준 수정 명령 입 니 다.그것들 은 모두 매우 간단 하고 사용 하기 쉬 우 며 목록 5 에서 보 여 준 문법 을 사용한다.
목록 5.명령 문법 수정
command <key> <flags> <expiration time> <bytes>
<value>
표 1 은 memcached 가 명령 을 수정 하 는 매개 변수 와 용법 을 정의 했다.
표 1.memcached 수정 명령 파라미터
매개 변수 용법
key
key 캐 시 값 찾기
flags
키 쌍 의 정형 파 라미 터 를 포함 할 수 있 으 며,클 라 이언 트 는 키 쌍 에 대한 추가 정 보 를 저장 합 니 다
expiration time
캐 시 에 키 쌍 의 시간 길 이 를 저장 합 니 다(초 단위,0 은 영원 함 을 표시 합 니 다)
bytes
캐 시 에 저 장 된 바이트 점
value
저 장 된 값(항상 두 번 째 줄 에 있 음)
이제 이 명령 들 의 실제 사용 을 살 펴 보 자.
set
set명령 은 캐 시 에 새 키 쌍 을 추가 하 는 데 사 용 됩 니 다.키 가 존재 하면 이전 값 이 대 체 됩 니 다.다음 대화 에 주의 하 십시오.
set명령 을 사 용 했 습 니 다.set userId 0 0 5
12345
STORED
set명령 을 사용 하여 키 쌍 을 정확하게 설정 하면 서버 는 단어 STORED 를 사용 하여 응답 합 니 다.이 예제 에 서 는 캐 시 에 키 쌍 을 추 가 했 습 니 다.키 는userId이 고 그 값 은12345입 니 다.만 료 시간 을 0 으로 설정 합 니 다.이 값 을 삭제 할 때 까지 캐 시 에 저장 하 라 고 memcached 에 알려 줍 니 다.add 는 캐 시 에 키 가 존재 하지 않 을 때 만
add명령 이 캐 시 에 키 쌍 을 추가 합 니 다.캐 시 에 키 가 존재 한다 면 이전 값 은 같 고 응답 NOT 를 받 을 수 있 습 니 다.STORED。 다음은
add명령 을 사용 하 는 표준 대화 입 니 다.set userId 0 0 5
12345
STORED
add userId 0 0 5
55555
NOT_STORED
add companyId 0 0 3
564
STORED
replace 는 키 가 존재 할 때 만
replace명령 이 캐 시 에 있 는 키 를 교체 합 니 다.캐 시 에 키 가 존재 하지 않 는 다 면 memcached 서버 에서 NOT 를 받 아들 일 것 입 니 다.STORED 응답.다음은replace명령 을 사용 하 는 표준 대화 입 니 다:replace accontId 0 567890
NOT_STORED
set accountId 0 0 5
67890
STORED
replace accountId 0 0 5
55555
STORED
마지막 두 가지 기본 명령 은
get과delete이다.이 명령 들 은 상당히 이해 하기 쉽 고 유사 한 문법 을 사 용 했 습 니 다.다음 과 같 습 니 다.command <key>
다음은 이 명령 들 의 응용 을 보 겠 습 니 다.
get
get명령 은 이전에 추 가 된 키 값 과 관련 된 값 을 검색 하 는 데 사 용 됩 니 다.대부분의 검색 작업 을 수행 하기 위해 서get를 사용 할 것 입 니 다.다음은
get명령 을 사용 하 는 전형 적 인 상호작용 입 니 다.set userId 0 0 5
12345
STORED
get userId
VALUE userId 0 5
12345
END
get bob
END
보시 다시 피
get명령 은 상당히 간단 합 니 다.하나의 키 를 사용 하여 호출get합 니 다.이 키 가 캐 시 에 존재 하면 해당 하 는 값 을 되 돌려 줍 니 다.존재 하지 않 으 면 어떤 내용 도 되 돌려 주지 않 습 니 다.delete 의 마지막 기본 명령 은delete입 니 다.delete명령 은 memcached 의 기 존 값 을 삭제 하 는 데 사 용 됩 니 다.키 호출delete을 사용 합 니 다.이 키 가 캐 시 에 존재 하면 이 값 을 삭제 합 니 다.존재 하지 않 으 면 NOT 를 되 돌려 줍 니 다.FOUND 소식.다음은delete명령 을 사용 한 클 라 이언 트 서버 상호작용:set userId 0 598765
STORED
delete bob
NOT_FOUND
delete userId
DELETED
get userId
END
고급 memcached 클 라 이언 트 명령memcached 에서 사용 할 수 있 는 두 가지 고급 명령 은
gets과cas이다.gets와cas명령 을 결합 하여 사용 해 야 한다.기 존의 이름/값 을 새 값 으로 설정 하지 않도록 이 두 명령 을 사용 할 것 입 니 다.(이 값 이 업데이트 되 었 다 면)우 리 는 이 명령 들 을 각각 살 펴 보 자.getsgets명령 의 기능 은 기본get명령 과 유사 하 다.두 명령 사이 의 차 이 는gets되 돌아 오 는 정보 가 약간 많다 는 것 이다.64 비트 의 전체 값 은 이름/값 이 맞 는'버 전'식별 자 와 매우 비슷 하 다.다음은gets명령 을 사용 한 클 라 이언 트 서버 상호작용:set userId 0 512345
STORED
get userId
VALUE userId 0 5
12345
END
gets userId
VALUE userId 0 5 4
12345
END
get과gets명령 간 의 차 이 를 고려 하 다.gets명령 은 추가 값 을 되 돌려 줍 니 다.이 예 에서 정형 값 4 로 표지 이름/값 쌍 에 사 용 됩 니 다.이 이름/값 이 다른set명령 을 실행 하면gets되 돌아 오 는 추가 값 이 변경 되 어 이름/값 이 업데이트 되 었 음 을 나타 낸다.목록 6 은 예 를 보 여 줍 니 다.목록 6.set 업데이트 버 전 인디케이터 set userId 0 0 5
33333
STORED
gets userId
VALUE userId 0 5 5
33333
END
gets되 돌아 오 는 값 을 보 셨 습 니까?그것 은 이미 5 로 업데이트 되 었 다.이름/값 이 맞 을 때마다 이 값 이 변 경 됩 니 다.카 스cas(check 과 set)는 매우 편리 한 memcached 명령 으로 이름/값 쌍 의 값 을 설정 하 는 데 사 용 됩 니 다.(이 이름/값 이 지난번 에 실 행 된gets이후 업데이트 되 지 않 았 다 면)이것 은set명령 과 유사 한 문법 을 사용 하지만,추가 값 을 포함 합 니 다.gets되 돌아 오 는 추가 값 입 니 다.다음 사용cas명령 의 상호작용 에 주의 하 십시오. 보시 다시 피 저 는 추가 정형 치 6 을 사용 하여
gets명령 을 호출 하고 비상 순 서 를 실행 합 니 다.이제 목록 7 의 일련의 명령 을 살 펴 보 자.목록 7.이전 버 전 인디케이터 를 사용 한 카 스 명령
set userId 0 0 5
55555
STORED
gets userId
VALUE userId 0 5 8
55555
END
cas userId 0 0 5 6
33333
EXISTS
주의 하 세 요.저 는
gets최근 에 돌아 온 정형 치 를 사용 하지 않 았 고cas명령 은 EXISTS 값 을 되 돌려 실 패 를 보 여 주 었 습 니 다.본질 적 으로gets와cas명령 을 동시에 사용 하면 지난번 에 읽 은 후에 업 데 이 트 된 이름/값 쌍 을 사용 하 는 것 을 방지 할 수 있 습 니 다.캐 시 관리 명령마지막 두 memcached 명령 은 memcached 인 스 턴 스 를 감시 하고 청소 하 는 데 사 용 됩 니 다.그것들 은stats과flush_all명령 이다.statsstats명령 의 기능 은 이름 과 같 습 니 다.연 결 된 memcached 인 스 턴 스 의 현재 통계 데 이 터 를 저장 합 니 다.다음 예 에서 실행stats명령 은 현재 memcached 인 스 턴 스 에 대한 정 보 를 보 여 줍 니 다:statsSTAT pid 63
STAT uptime 101758
STAT time 1248643186
STAT version 1.4.11
STAT pointer_size 32
STAT rusage_user 1.177192
STAT rusage_system 2.365370
STAT curr_items 2
STAT total_items 8
STAT bytes 119
STAT curr_connections 6
STAT total_connections 7
STAT connection_structures 7
STAT cmd_get 12
STAT cmd_set 12
STAT get_hits 12
STAT get_misses 0
STAT evictions 0
STAT bytes_read 471
STAT bytes_written 535
STAT limit_maxbytes 67108864
STAT threads 4
END
이곳 의 대부분의 출력 은 매우 이해 하기 쉽다.잠시 후 캐 시 성능 에 대해 토론 할 때,나 는 이 값 들 의 의 미 를 상세 하 게 설명 할 것 이다.현재,우 리 는 먼저 출력 을 살 펴 본 다음 에 새로운 키 를 사용 하여
set명령 을 실행 하고,다시stats명령 을 실행 하 며,어떤 변화 가 발생 했 는 지 주의 합 니 다.flush_allflush_all은 마지막 으로 소개 할 명령 이다.이 가장 간단 한 명령 은 캐 시 에 있 는 모든 이름/값 쌍 을 청소 하 는 데 만 사 용 됩 니 다.캐 시 를 깨끗 한 상태 로 리 셋 해 야 한다 면flush_all큰 도움 이 될 것 입 니 다.다음은 사용flush_all의 예 입 니 다:set userId 0 0 555555
STORED
get userId
VALUE userId 0 5
55555
END
flush_all
OK
get userId
END
캐 시 성능본 논문 의 마지막 부분 에서 저 는 고급 memcached 명령 을 어떻게 사용 하여 캐 시 성능 을 확인 하 는 지 토론 할 것 입 니 다.
stats명령 은 캐 시 를 조정 하 는 데 사 용 됩 니 다.주의해 야 할 두 가지 가장 중요 한 통계 데 이 터 는 et 이다.hits 와 getmisses。이 두 값 은 각각 이름/값 이 맞 는 횟수 를 표시 합 니 다(gethits)와 이름/값 을 찾 지 못 한 횟수(getmisses)。이 값 을 결합 하면 캐 시 이 용 률 이 어떤 지 확인 할 수 있 습 니 다.캐 시 를 처음 시작 할 때 get 을 볼 수 있 습 니 다.misses 는 자 연 스 럽 게 증가 하지만 일정한 사용량 을 거 친 후 이 getmisses 값 은 점점 평온 해 질 것 입 니 다.캐 시 는 주로 일반적인 읽 기 동작 에 사 용 됩 니 다.get 를 보신 다 면misses 계속 빠르게 증가,gethits 가 점점 안정 되 고 있 으 면 캐 시 된 내용 이 무엇 인지 확인 해 야 합 니 다.잘못된 내용 을 캐 시 했 을 수도 있 습 니 다.캐 시 효율 을 확인 하 는 또 다른 방법 은 캐 시 명중률(hit ratio)을 보 는 것 입 니 다.캐 시 적중률 은 실행get횟수 와 놓 친 횟수get의 백분율 을 나타 낸다.이 백분율 을 확인 하려 면 목록 8 과 같은 명령 을 다시 실행 해 야 합 니 다.목록 8.캐 시 적중률 계산 stats
STAT pid 6825
STAT uptime 540692
STAT time 1249252262
STAT version 1.2.6
STAT pointer_size 32
STAT rusage_user 0.056003
STAT rusage_system 0.180011
STAT curr_items 595
STAT total_items 961
STAT bytes 4587415
STAT curr_connections 3
STAT total_connections 22
STAT connection_structures 4
STAT cmd_get 2688
STAT cmd_set 961
STAT get_hits 1908
STAT get_misses 780
STAT evictions 0
STAT bytes_read 5770762
STAT bytes_written 7421373
STAT limit_maxbytes 536870912
STAT threads 1
END
지금,get 로hits 의 수 치 를 cmd 로 나 누 기gets。이 예 에서 당신 의 명중률 은 약 71%입 니 다.이상 적 인 상황 에서 당신 은 더 높 은 백분율-비율 이 높 을 수록 좋 습 니 다.통계 데 이 터 를 볼 때 캐 시 정책 의 효율 을 잘 판단 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
최근 문제가 되고 있는 서버 스레드 중단 문제 해결우리의 응용 프로그램은 인터넷 하드디스크와 같은 다운로드 도구로 사이트의 방문량이 비교적 적지만 문제가 우리를 계속 괴롭히고 있다. 바로was 서버가 일정 시간 간격으로 라인을 끊고 시간이 길고 짧으며 5분 안에 다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.