2015-01-19 9 views
2

클라이언트에서 정상적인 API로 redis 명령을 트리거 할 수있는 가능성을 살펴보고 라이브러리가 명령을 파이프 라인하여 비동기 적으로 다시 응답 할 수 있습니다. Java 용 라이브러리는 매우 높이 평가됩니다.자동으로 파이프 라이닝을 처리하는 redis 라이브러리가 있습니까?

동일한 줄에서 opensource 작업에 대한 지침이 있으면 큰 도움이 될 것입니다.

+0

은하지 않습니다 또한

RBatch batch = redisson.createBatch(); Future<String> mapFuture = batch.getMap("test").putAsync("2", "5"); Future<Long> longFuture = batch.getAtomicLongAsync("counter").incrementAndGetAsync(); List<?> res = batch.execute(); // or Future<List<?>> asyncRes = batch.executeAsync(); 

, 당신은

mapFuture.get() 결과 나 asyncRes.get()[0]

바인드 리스너를 사용할 수 있습니다 –

+0

따라서 명령의 특정 임계 값이 랩퍼에 도달하거나 최대 시간 초과가 3ms의 오더 일 수있는 경우 랩퍼가 명령을 밀어 내야합니다. 아이디어는 데이터 저장소로 보내지는 명령의 수를 최적화하는 것입니다. 이것은 일종의 수직 배율입니다 – titan

답변

2

모두 인기있는 Java Redis 클라이언트 인 Jedislettuce은 비동기/파이프 라이닝을 제공합니다. 예를 들어 here을 참조하십시오. 명령을 실행 한 후 Future을 얻으므로 스스로 동기화하거나 차후 콜백에 사용할 수 있습니다.

mapFuture.addListener(new FutureListener<String>() { 
    ... 
}) 

asyncRes.addListener(new FutureListener<List>() { 
    ... 
}) 
0

Redisson

더 편리한 방법으로 파이프 라인 지원을 제공한다 좋은 생각처럼 들리는데, 당신의 진료실은 래퍼가 파이프 라인을 보내고 처리하기를 기다리는 동안. 당신의 유스 케이스는 무엇입니까?
관련 문제