0
저는 Redis를 처음 사용하고 있으며 Redis 트랜잭션을 실험 중이므로 다음 시나리오에서 Redis 트랜잭션을 사용하려고합니다. 다음을 수행하는 것이 가능한지 알아야합니다.Java Redis (jedis) 트랜잭션 및 정렬 된 집합
- 거래 시작.
- 정렬 된 집합에서 상위 10 개 요소를 읽습니다.
- 각 요소에 대해 'for 루프'가 있습니다.
- 실행.
나는 다음과 같은 코드를 시도했지만 트랜잭션을 실행하기 전에 <Response>.get()
을 수행하고 있기 때문에 작동하지 않습니다.
final Transaction tx = jedis.multi();
final Response<Set<Tuple>> tuples = tx.zrangeByScoreWithScores("randomKey", 0d, 100, 0, 10);
for (final Tuple tuple : tuples.get()) {
jedis.incr(tuple);
}
tx.exec(); //In a hope that get and sets happen in a single transaction.
이 문제를 해결하는 방법이 있습니까?
루아와 EXEC로 redis-site를 보았습니까? –
예, 지금 해보기입니다. 파이프 라인 및 트랜잭션을 사용하여 무언가를 얻으려고했다. – face
데이터를 반복 할 수 있으려면 클라이언트 측에서 2 단계로 수행하거나 Lua 서버 측에서 사용해야합니다. –