캐시의 스트림 처리
캐시 API를 사용하여 대량의 데이터(미디어 파일 또는 대용량 PDF 문서)를 캐시에 직접 저장하는 것은 비효율적입니다. 먼저 전체 파일을 애플리케이션 메모리에 로드한 다음 단일 개체로 캐시에 넣어야 합니다. 결국 클라이언트 측에서 더 많은 메모리 소비가 발생합니다. NCache 을 통해 스트림 처리를 제공합니다. NCache 큰 바이너리 데이터를 작은 청크 형태로 캐시에 읽거나 쓸 수 있는 API입니다. 또한 여러 병렬 스트림을 캐시로 동시에 열 수 있습니다.
스트림: 처리는 언제 유용합니까?
사용자가 볼 수 있는 대용량 미디어 파일이 포함된 트래픽이 많은 애플리케이션이 있고 빠른 액세스를 위해 자주 보는 미디어 파일을 캐시에 보관한다고 가정해 보겠습니다. 캐시에 대용량 미디어 파일을 추가하고 가져오는 것은 비동기적으로라도 한 번에 추가하거나 가져오는 경우 비용이 많이 들 수 있습니다. 한편, 이러한 애플리케이션에는 고성능과 실시간 응답이 필요합니다. 이런 점에서 스트림 처리는 큰 객체를 청크 형태로 쓰고 읽을 수 있게 함으로써 시간과 메모리 비용을 효과적으로 줄일 수 있습니다.
경고
In NCache, 직렬화/역직렬화, 압축/압축해제 또는 암호화/복호화는 스트림 처리에 적용되지 않습니다.
스트림 버퍼
일반적으로 스트림은 지정된 저장소(여기서는 캐시)에서 직접 가져오거나 삽입됩니다. 스토리지와 스트림 사이에 버퍼를 추가할 수도 있습니다. 그런 다음 스트림이 해당 버퍼에 먼저 추가됩니다. 버퍼가 가득 차면 캐시에 기록되거나 필요한 곳에 로드됩니다. 스트리밍에서 버퍼를 사용하려면 버퍼 크기만 지정하면 됩니다. 버퍼링은 응답 시간을 줄여 성능을 크게 향상시킬 수 있습니다.
주의 사항
XNUMXD덴탈의 기본 크기 스트림 버퍼의 4K입니다.
스트림 모드
NCache 다른 제공 스트리밍 모드 캐시의 스트림을 사용하여 데이터를 검색/업데이트하는 동안 읽기/쓰기 액세스를 가능하게 합니다. 원하는 작업에 따라 이러한 모드를 지정해야 합니다.
스트림 읽기
In Read
모드에서는 여러 클라이언트가 스트림에서 읽기 작업을 동시에 수행할 수 있지만 이 모드에서는 쓰기 작업이 허용되지 않습니다. 여러 애플리케이션이 있는 경우 데이터 일관성을 보장하려는 경우 이 모드를 지정할 수 있습니다.
잠금 없이 스트림 읽기
In ReadWithoutLock
모드에서는 읽기 작업이 쓰기 중지를 위한 잠금을 획득하지 않기 때문에 읽기 작업과 병렬로 쓰기 작업을 수행할 수 있습니다. 지정하여 데이터를 읽을 수 있습니다. ReadWithoutLock
데이터를 동시에 처리해야 하는 경우 모드.
스트림 쓰기
In Write
모드에서는 스트림에서 단일 쓰기 작업만 수행할 수 있습니다. 이 모드에서는 읽기 작업이 허용되지 않습니다. 쓰기 잠금이 있는 스레드도 해당 스트림을 읽을 수 없습니다.
주의 사항
NCache 스트림은 다음을 지원하지 않습니다. Seek
작동.
중대한
다른 스레드가 해당 스트림을 사용할 수 있기를 기다리고 있을 수 있으므로 잠금을 해제하려면 열린 스트림을 올바르게 닫아야 합니다. 스트림이 닫히지 않으면 잠금을 획득하려는 다른 스레드는 예외를 수신합니다.
이 섹션의
스트림으로 데이터 추가/업데이트
스트림에 데이터를 추가하거나 추가된 데이터를 업데이트하는 방법을 설명합니다.
스트림에서 데이터 검색
스트림에서 데이터를 검색하는 방법을 설명합니다.