ReactiveRedisTemplate
すべてのキーを取得してから、Spring Data Redisを使用してすべての値を取得しようとしています
(それが望ましいことはわかっていscan
ますが、それが私の問題でない限り、今のところ単純にしたいと思います)
コード スニペット:
@Service
class Test {
Logger logger = LoggerFactory.getLogger(Test.class);
@Autowired
private ReactiveRedisTemplate<String, String> reactiveRedisTemplate;
@EventListener(ApplicationReadyEvent.class)
public void test() {
logger.info("test");
var ops = reactiveRedisTemplate.opsForValue();
var keys = reactiveRedisTemplate.keys("*");
keys
.map(l -> {
logger.info("test1 " + l);
return ops.get(l);
})
.doOnNext(
l -> logger.info("test2 " + l)
)
.blockLast();
logger.info("done");
}
}
問題は、次の出力が得られることです。
test
test1 key1
test2 MonoNext
test1 key2
test2 MonoNext
test1 key3
test2 MonoNext
test1 key4
test2 MonoNext
done
私は期待します:
test
test1 key1
test2 val1
test1 key2
test2 val2
test1 key3
test2 val3
test1 key4
test2 val4
done
私は rx-java を初めて使用するので、おそらく何か不足しています。