온라인 쇼핑몰
상품 페이지, 가격, 재고 수준은 초당 수천 번 읽히며, 카탈로그가 바뀌면 태그로 새로 고칩니다.
가장 자주 쓰는 데이터를 메모리에 두고 1밀리초에 훨씬 못 미치는 시간에 읽기에 응답합니다. 모든 코어를 활용하는 엔진에서 실행됩니다.
히트는 메모리에서 곧바로 반환됩니다. 데이터베이스는 건드리지 않습니다.
실제 HotKV 명령과 예시 응답으로 구성된 애니메이션 안내입니다. 원하는 단계를 클릭하면 해당 단계로 이동합니다. 명령과 응답은 HotKV에서 입력하고 보는 그대로 영어로 표시됩니다.
초당 수천 번 읽히는 데이터를 위해 데이터베이스를 호출하는 것은 느리고 비쌉니다. 모든 페이지 조회, API 호출, 대시보드 새로 고침이 같은 쿼리를 반복하며, 애플리케이션보다 훨씬 먼저 데이터베이스가 병목이 됩니다.
HotKV는 데이터베이스 앞에서 결과를 메모리에 보관합니다. 애플리케이션은 먼저 HotKV에서 읽고, 미스일 때만 데이터베이스로 돌아갑니다. HotKV는 여러 스레드에서 동시에 명령을 실행하므로 바쁜 캐시라도 모든 클라이언트를 단일 코어로 몰아넣지 않으며, 태그를 사용하면 원본 데이터가 바뀔 때 항목 그룹 전체를 무효화할 수 있습니다.
히트는 메모리에서 곧바로 반환됩니다. 데이터베이스는 건드리지 않습니다.
GET product:1001미스가 나면 애플리케이션이 데이터베이스를 한 번 읽고 결과를 5분 동안 캐시합니다.
SET product:2002 "{\"name\":\"Oak desk\",\"price\":420}" EX 300조명 상품을 보여 주는 모든 캐시 페이지에 같은 태그가 붙습니다.
TAG.SET product:1001 catalog:lighting가격이 바뀌었습니다. 태그가 있는 모든 키를 나열하고 파이프라인 하나로 삭제합니다.
TAG.MEMBERS catalog:lighting이미 설정된 플래시 토큰으로, 나노초 정밀도로 250 ms 후에 사라져야 합니다.
NEXPIRE flash:token:9 250000000상품 페이지, 가격, 재고 수준은 초당 수천 번 읽히며, 카탈로그가 바뀌면 태그로 새로 고칩니다.
인기 엔드포인트의 응답을 짧은 TTL로 캐시하므로 트래픽 급증이 데이터베이스가 아닌 메모리로 향합니다.
렌더링된 조각과 기사 메타데이터를 몇 분 동안 캐시하고, 편집자가 게시하면 태그로 무효화합니다.
EXPIRE와 PEXPIRE는 예상대로 동작합니다. NEXPIRE는 나노초 정밀도를 더합니다.
EXPIREPEXPIRENEXPIRETAG.SET으로 키에 레이블을 붙인 뒤, 레이블이 있는 모든 키를 찾습니다.
TAG.SETTAG.MEMBERS큰 페이로드를 압축해 워킹 세트를 더 많이 메모리에 담을 수 있습니다.
명령이 병렬 스레드에서 실행되므로 처리량이 코어 수에 따라 늘어납니다. 수치는 성능 페이지에 있습니다.
GETMGETHotKV는 Redis 프로토콜(RESP2 및 RESP3)을 사용하므로 표준 Redis 클라이언트로 연결할 수 있습니다. 사용하는 명령은 명령 레퍼런스에서 확인하십시오.
캐시할 때 TAG.SET으로 키에 태그를 붙인 다음, TAG.MEMBERS를 호출하고 반환된 키를 삭제합니다.
HotKV가 공개한 벤치마크의 파이프라인 GET 처리량입니다. 방법과 하드웨어는 성능 페이지에 있습니다.