redis 리스트 유형동력 노드 자바 대학 정리

2324 단어 redis목록 형식
60%가 redis 를 사용 하여 redis 의 list 유형 을 중시한다 고 하 는데 이 list 는 무슨 소 용이 있 습 니까?제 가 말씀 드 리 지 않 아 도 다 들 아 시 겠 지만 대열 에서 사용 하 세 요.왜 사용 하 세 요?아주 간단 하 죠.왜냐하면 그것 이 있 으 면 저 는 전문 적 인 MQ 제품 이 필요 하지 않 습 니 다.예 를 들 어 RabbitMQ,ActiveMQ 등 이 있 습 니 다.그렇지?
실전
우선 리스트 목록 이 제공 하 는 방법 을 살 펴 보 자.

이런 방법 들 은 아직도 흐리멍덩 하 다.괜찮아.대열 을 만들어 서 사용 하면 자주 사용 하 는 것 도 네 가지 야.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 입 니 다.자,여러 가지 정리 에 따라 저 는 다음 과 같은 그림 을 그 릴 수 있 을 것 입 니 다.

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기