redis 리스트 유형동력 노드 자바 대학 정리
실전
우선 리스트 목록 이 제공 하 는 방법 을 살 펴 보 자.
이런 방법 들 은 아직도 흐리멍덩 하 다.괜찮아.대열 을 만들어 서 사용 하면 자주 사용 하 는 것 도 네 가지 야.LPOP,LPUSH,RPOP,RPUSH.이 네 단어 위 에서 데이터 구조의'양 끝 대열'과 비슷 하 다 는 것 을 알 수 있 을 거 야.그렇지?내 가 왼쪽 Pop 이나 Push 를 할 수 있 고 오른쪽 Pop 이나 Push 를 할 수 있다 면...저 는 List 를 대열 이나 스 택 으로 만 들 수 있 습 니 다.하하,재 미 있 지 않 습 니까?다음은 제 가 예 를 들 어 List 의 왼쪽 순서 로 10,20,30,40,50 을 넣 은 다음 에 대열 의 다른 한 끝 에서 10,20,30,40,50 을 순서대로 출력 합 니 다.
참,지금 우리 프로젝트 에서 list 를 사용 하 는 장면 들 을 말씀 드 리 겠 습 니 다.
1.프로젝트 에 많은 wcf 를 사 용 했 기 때문에 설정 이 너무 많 고 유지 보수 와 업데이트 가 매우 번 거 롭 습 니 다.이러한 상황 을 바탕 으로 저 희 는 wcf 가 비동기 적 으로 처리 할 수 있 는 모든 요청 을 redis 의 List 에 버 렸 습 니 다.이렇게 된 후에 웹 사이트 의 config 설정 은 시원 하 게 필요 하지 않 습 니 다.
2.또 하나의 업 무 는 바로 우리 가 한 타 오 바 오 주문 의 지불 재촉,지불 알림,서명 알림,수령 알림 등 이 모두 폴 링 List 방식 으로 코드 의 복잡 한 양 을 크게 낮 춘 것 이다.
자,이것 은 아마도 list 의 사용 장면 일 것 입 니 다.이것 이 어떻게 실현 되 었 는 지 살 펴 보 겠 습 니 다.
2.탐색 원리
소스 코드 는 adlist.c 에서 다음 과 같 습 니 다.
간단 한 한 줄 이 아 닙 니까?만약 에 데이터 구조 중의 링크 를 배 웠 다 면 한 번 보면 알 수 있 을 것 같 습 니 다.
<1> listNode
이것 은 node 노드 임 이 분명 합 니 다.prev 포인터 와 next 포인터 가 있 고 노드 의 전구 와 후계,그리고 void*라 는 유형의 value 가 있 음 을 알 수 있 습 니 다.
그것 은 우리 가 말 한 SDS 형식의 매 거 진 을 저장 합 니 다.
<2>list
이 list 가 매우 재 미 있 는 것 은 바로 안에 head 와 tail 노드 가 있 는데 알 수 있 듯 이 tail 은 list 의 끝 노드 를 저장 하고 이 노드 가 있 으 면 무엇 을 설명 합 니까?끝 노드 를 삭제 하 는 복잡 도 는 O(1)이 고 이 head 도 있 습 니 다.머리 노드 를 삭제 하 는 것 도 O(1)입 니 다.이것 은 바로 방금 말 한 LPush,LPop,RPush,RPop 이 있 습 니 다.그 렇 죠?동시에 list 안에 len 속성 이 하나 있 습 니 다.현재 list 의 요소 개 수 를 기록 하 는 것 입 니 다.그러면 list 의 개수 도 O(1)입 니 다.그 렇 죠?
RedisObject 안에 ptr 지침 이 있 는데 이것 이 가리 키 는 것 은 바로 이 편의 list 입 니 다.자,여러 가지 정리 에 따라 저 는 다음 과 같은 그림 을 그 릴 수 있 을 것 입 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redis 해시에 대한 완벽한 가이드변경 가능하므로 필요에 따라 쉽게 변경하고 업데이트할 수 있습니다. Redis 해시는 구조가 평평하므로 JSON에서와 같이 여러 수준을 가질 수 없습니다. redis 해시의 명명 규칙은 hash:key 로 입력되므로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.