16.6.3.1 memcached의 기본 조작
memcached의 인터페이스는 캐시의 정보를 저장하고 검색하기 위해 다음 메소드를 지원합니다. 이들은 언어 고유의 구조가 다를 수 있지만, 다른 모든 API간에 일관성이 있습니다.
get(
: 캐시에서 정보를 가져옵니다. 지정된 키가있는 경우 해당 키와 연결된 값을 반환합니다. 지정된 키가 존재하지 않으면key
)NULL
,nil
,undefined
또는 해당 언어의 가장 가까운 등가 요소를 반환합니다.set(
: 캐시 키와 관련된 항목을 지정된 값으로 설정합니다. 이것은 키가 이미 존재하는 경우 기존 항목을 업데이트하고 키가 존재하지 않는 경우 새로운 키 / 값 쌍을 추가합니다. 만료 시간이 지정되어있는 경우 해지 시간에 도달하면 해당 항목이 만료됩니다 (그리고 삭제됩니다). 이 시간은 초 단위로 지정된 값이 30 일 미만 (30 * 24 * 60 * 60)의 경우는 상대 시간으로 간주되며이 값보다 큰 경우는 절대 시간 (시대)로 간주됩니다.key
,value
[,expiry
])add(
: 지정된 키가 아직 존재하지 않는 경우 해당 키와 연관된 값을 캐시에 추가합니다.key
,value
[,expiry
])replace(
: 지정된key
,value
[,expiry
])key
가 존재하는 경우에만 해당 키와 관련된 항목을 대체합니다. 새로운 값은value
매개 변수로 지정됩니다.delete(
:key
[,time
])key
와 연관된 항목을 캐시에서 제거합니다.time
을 지정하면 지정된key
에 의한 다른 항목의 추가가 지정한 기간 동안 차단됩니다.incr(
:key
,value
)key
와 관련된 항목을 지정된value
씩 증가합니다.decr(
:key
,value
)key
와 관련된 항목을 지정된value
만 감 분합니다.flush_all
: 캐시의 현재 값을 모두 해제 (또는 해지)합니다. 이들은 기술적으로는 여전히 존재합니다 (삭제되지 않습니다)가 다음 액세스하려고 할 때 경고가 표시되지 않고 파괴됩니다.
어느 구현에서도 이러한 기능의 대부분 또는 전부가 대응하는 네이티브 언어 인터페이스에 의해 복제되고 있습니다.
가능하면 데이터베이스의 단일 컬럼 값을 캐시하는 것이 아니라, memcached를 사용하여 모든 항목을 저장합니다. 예를 들어, 객체 (청구서, 사용자 내역 또는 블로그 게시물)에 관한 기록을 볼 때 데이터베이스에서 관련 항목 데이터를로드하고 그것을 응용 프로그램이 일반적으로 요구되는 내부 구조에 대해 설명합니다. 이 완성 된 개체를 캐시에 저장합니다.
복잡한 데이터 구조는 직접 저장할 수 없습니다. 대부분의 인터페이스는 데이터를 자동으로 직렬화 (즉, 원래의 포인터와 중첩을 재구성 할 수있는 텍스트 형식으로 변환)합니다. Perl에서는 Storable
PHP에서 serialize
, Python에서는 cPickle
(또는 Pickle
), Java에서는 Serializable
인터페이스가 각각 사용됩니다. 대부분의 경우 사용되는 직렬화 인터페이스는 사용자 정의 할 수 있습니다. memcached 인스턴스에 저장된 데이터를 다른 언어 인터페이스간에 공유하려면 JSON (Javascript Object Notation) 등의 일반적인 직렬화 솔루션의 사용을 고려하십시오.