>데이터 베이스 >Redis >Redis에서 페이징을 수행하는 방법

Redis에서 페이징을 수행하는 방법

(*-*)浩
(*-*)浩원래의
2019-11-29 10:15:417046검색

Redis에서 페이징을 수행하는 방법

실제 비즈니스에서는 일부 핫 데이터를 Redis에 캐시합니다. 이때 데이터 양이 상대적으로 크면 페이징하는 방법이 두 가지가 있습니다. (권장 학습: Redis 동영상 튜토리얼)

먼저: Redis에서 모든 데이터를 꺼낸 후 메모리 페이징을 수행합니다(권장하지 않음). 이는 핫스팟 데이터가 작을 때 수행할 수 있지만 성능 차이는 크지 않습니다. 데이터가 크면 페이징 중에 많은 메모리를 차지하거나 버스트될 수 있습니다.

두 번째: Redis 데이터 구조를 기반으로 하는 캐시 페이징은 두 가지 유형으로 나뉩니다

①: Redis 기반 목록 데이터 구조, 목록 데이터 구조를 통해 직접 범위 방식을 사용하여 페이징할 수 있습니다. 데이터 양이 많을 경우 성능도 매우 인상적이지만 인터페이스에 대한 동시 액세스가 많은 경우 목록이 무한정 확장될 수 있습니다. 그리고 데이터 중복이 많아 정상적인 비즈니스에 영향을 미칠 것입니다(별로 권장되지 않음).

②: Redis의 ZSet 데이터 구조를 기반으로 순서가 지정된 컬렉션인 Zset을 통해 페이징을 수행할 수도 있습니다. 범위 방법이지만 여기서 더 문제는 데이터를 초기화할 때입니다. Zset은 값과 점수의 키-값 쌍을 저장해야 합니다. 자세한 내용은 Baidu에서 확인할 수 있습니다. 여기서 테스트할 때 이 목록에 있는 현재 데이터의 위치를 ​​사용하고 Zset은 이 점수 값에 따라 정렬됩니다. 기본값은 작은 것부터 큰 것까지입니다. 이것을 사용하면 동시성이 높은 상황에서도 Zset에는 중복 데이터가 없으므로 페이징 효율성은 목록 구조와 유사합니다.

3: 해시와 Zset을 함께 사용하여 Zset 매장에서 주문했습니다. id 필드를 페이징한 후 ID를 사용하여 해시에서 가져옵니다. 중간에 가져오는 추가 레이어가 있다는 점을 제외하면 큰 차이는 없습니다. 해시 구조 및 다른 해시를 유지해야 합니다. (이 작업이 수행되는 이유는 모르겠습니다.)

내 테스트 목록 및 ZSet 결과 사진 게시

Redis에서 페이징을 수행하는 방법

Redis 관련 기술 기사를 보려면 Redis 시작하기 튜토리얼 칼럼을 방문하여 알아보세요!

위 내용은 Redis에서 페이징을 수행하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.