배치 쿼리에 redistemplate을 사용할 때 반환 값이 비어있는 이유는 무엇입니까? 이 문제를 해결하는 방법?
이 기사는 배치 쿼리에 스프링 데이터 Redis의 RedisTemplate
사용할 때 반환 값이 비어있는 이유를 분석하고 해당 솔루션을 제공합니다. Batch GET
작동을 위해 executePipelined
메소드를 사용하는 경우 결과가 파이프 라인 내부에서 직접 처리되면 반환 값이 비어 있습니다. 이는 파이프 라인 작업이 모든 명령을 캐시하고 executePipelined
호출 될 때까지 Redis 서버로 전송되지 않으며 내부 처리는 적시 반환을 얻을 수 없기 때문입니다.
질문 설명 :
기사에 두 가지 오류 예제가 제시되어 있으며, 둘 다 executePipelined
내부의 GET
명령 결과를 처리하려고 시도하여 최종 반환 목록이 모두 null
됩니다.
문제 분석 및 솔루션 :
문제의 핵심은 파이프 라인 작업의 비동기 특성에 있습니다. executePipelined
메소드가 결과를 반환 한 다음 균일하게 처리 한 후 올바른 접근 방식을 수행해야합니다. 이 기사에서 제공된 첫 번째 방법은 루프 내에서 필사적으로 파이프 라인 작업의 효율성을 파괴합니다. 두 번째 방법은 SessionCallback
사용하지만 여전히 파이프 라인 내부에서 결과 처리를 수행합니다.
개선 된 솔루션 :
개선 된 batchGetList
메소드는이 기사에 제공되며 executePipelined
의 반환 값을 올바르게 활용합니다.
공공의<t> 목록<t> BatchgetList (수집<string> 키) { if (collectionUtil.isempty (키)) { 새로운 ArrayList ()를 반환합니다. } 목록<object> results = redistemplate.executePipelined ((readisconnection connection) -> { 재화화물<string> Keyserializer = (재조류<string> ) redistemplate.getKeyserializer (); for (문자열 키 : 키) { Connection.get (Keyserializer.serialize (key)); } 널 리턴; }); // 외부 처리 실행 결과 파이프 라인 return results.stream () .map (result-> (t) redistemplate.getValueserializer (). deserialize ((byte []) 결과)) .collect (collectors.tolist ()); }</string></string></object></string></t></t>
이 방법은 먼저 keys
비어 있는지 확인한 다음 executePipelined
사용하여 배치 GET
작업을 수행합니다. 핵심은 파이프 라인 실행이 완료된 후 Stream
API를 사용하여 results
목록을 통과하고 redisTemplate.getValueSerializer().deserialize
사용하여 각 결과를 제거하고 결국 올바른 데이터가 포함 된 목록을 반환한다는 것입니다. 이는 파이프 라인 내부의 결과를 처리하는 잘못된 관행을 피하고 REDIS의 데이터가 올바르게 검색되도록합니다. 이 방법은 모든 키 값 쌍이 동일한 사막화제를 사용한다고 가정합니다. 여러 데이터 유형이있는 경우 실제 조건에 따라 조정해야합니다.
위 내용은 배치 쿼리에 redistemplate을 사용할 때 반환 값이 비어있는 이유는 무엇입니까? 이 문제를 해결하는 방법?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Centos 시스템에서 Hadoop 분산 파일 시스템 (HDF)을 구축하려면 여러 단계가 필요합니다. 이 기사는 간단한 구성 안내서를 제공합니다. 1. 초기 단계에서 JDK를 설치할 준비 : 모든 노드에 JavadevelopmentKit (JDK)을 설치하면 버전이 Hadoop과 호환되어야합니다. 설치 패키지는 Oracle 공식 웹 사이트에서 다운로드 할 수 있습니다. 환경 변수 구성 : /etc /프로파일 파일 편집, Java 및 Hadoop 설정 설정 시스템에서 JDK 및 Hadoop의 설치 경로를 찾을 수 있습니다. 2. 보안 구성 : SSH 비밀번호가없는 로그인 SSH 키 : 각 노드에서 ssh-keygen 명령을 사용하십시오.

Notepad의 JSON Viewer 플러그인을 사용하여 JSON 파일을 쉽게 포맷하십시오. JSON 파일을 엽니 다. JSON 뷰어 플러그인을 설치하고 활성화하십시오. "플러그인"으로 이동하십시오. & gt; "JSON 뷰어"& gt; "형식 JSON". 계약, 분기 및 정렬 설정을 사용자 정의하십시오. 형식을 적용하여 가독성과 이해를 향상시켜 JSON 데이터의 처리 및 편집을 단순화하십시오.

공식 Redis 소스에서 소스 코드 패키지를 다운로드하여 최신 버전을 보장하고 개인화 된 방식으로 사용자 정의 할 수 있도록 컴파일하고 설치하십시오. 특정 단계는 다음과 같습니다. 소프트웨어 패키지 목록을 업데이트하고 Redis 디렉토리 생성 Redis 소스 코드 패키지 다운로드 소스 코드 패키지를 압축하고 설치 구성을 컴파일하고 Redis 구성을 수정하여 시작 상태를 확인하십시오.

CentOS 시스템에서 Redis Slow Query 로그를 활성화하여 성능 진단 효율성을 향상시킵니다. 다음 단계는 구성을 안내합니다. 1 단계 : Redis 구성 파일 찾기 및 편집 먼저, 일반적으로 /etc/redis/redis.conf에있는 redis 구성 파일을 찾으십시오. 다음 명령으로 구성 파일을 엽니 다. sudovi/etc/redis/redis.conf 2 단계 : 구성 파일에서 느린 쿼리 로그 매개 변수 조정, 다음 매개 변수를 찾고 수정하십시오.

CentOS에서 HDFS (Hadoop 분산 파일 시스템)를 구성 할 때 다음 주요 구성 파일을 수정해야합니다. core-site.xml : fs.defaultfs : hdfs : // localhost : 9000과 같은 HDFS의 기본 파일 시스템 주소를 지정합니다. Hadoop.tmp.dir : Hadoop 임시 파일의 스토리지 디렉토리를 지정합니다. hadoop.proxyuser.root.hosts 및 hadoop.proxyuser.ro

CentOS 시스템 하의 HDFS 파일 시스템에 대한 설치, 구성 및 최적화 안내서이 기사에서는 CentOS 시스템에 HDF (Hadoop Distributed File System)를 설치, 구성 및 최적화하는 방법을 안내합니다. HDFS 설치 및 구성 Java 환경 설치 : 먼저 적절한 Java 환경이 설치되어 있는지 확인하십시오. /etc/profile 파일 편집, 다음을 추가하고 /usr/lib/java-1.8.0/jdk1.8.0_144를 실제 Java 설치 경로로 바꾸십시오 : Exportjava_home =/usr/lib/java-1.8.0/jdk1.8.0_144 exportpath = $ j

vprocesserazrabotkiveb-enclosed, мнепришлостольносться악 · 뇨 зейейерациигоглапи혁 맥발 추배. LeavallysumballancefriAblancefaumdoMatification, čtookazalovnetakprosto, Kakaožidal.posenesko

Redis 캐싱 솔루션은 제품 순위 목록의 요구 사항을 어떻게 인식합니까? 개발 과정에서 우리는 종종 a ... 표시와 같은 순위의 요구 사항을 처리해야합니다.
