0

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 を初めて使用するので、おそらく何か不足しています。

4

1 に答える 1