Redis Reactive 成员和 hMGet Flux
Redis Reactive sMembers and hMGet Flux
我是响应式编程的新手。我正在尝试使用 Spring Webflux for smembers 以反应方式查询 Redis,然后使用该结果需要查询 hmget。 sMembers 查询的结果是 Flux>,hMGet 正在期待
第二个参数作为 Collection。我不确定如何以正确的方式编写此函数。有人可以帮我更正这个问题吗?
return Flux.just(keys)
.map(key -> {
return reactiveClusterSetCommands.sMembers(ByteBuffer.wrap(key.getBytes())).flatMap(a -> reactiveClusterHashCommands.hMGet(ByteBuffer.wrap(hash(key).getBytes()),a));
});
使用 Flux.collectList()
将 Flux<String>
收集到集合成员的 Mono<List<String>>
中,然后使用 flatMapMany
调用带有集合成员列表的 HMGET
。
Flux.fromIterable(keys)
.flatMap(key -> {
ByteBuffer keyBytes = ByteBuffer.wrap(key.getBytes());
Mono<List<String>> setMembersMono = commands.sMembers(keyBytes).collectList();
ByteBuffer hashKeyBytes = ByteBuffer.wrap(hash(key).getBytes());
setMembersMono.flatMapMany(setMembers -> commands.hMGet(hashKeyBytes, setMembers));
});
我是响应式编程的新手。我正在尝试使用 Spring Webflux for smembers 以反应方式查询 Redis,然后使用该结果需要查询 hmget。 sMembers 查询的结果是 Flux>,hMGet 正在期待 第二个参数作为 Collection。我不确定如何以正确的方式编写此函数。有人可以帮我更正这个问题吗?
return Flux.just(keys)
.map(key -> {
return reactiveClusterSetCommands.sMembers(ByteBuffer.wrap(key.getBytes())).flatMap(a -> reactiveClusterHashCommands.hMGet(ByteBuffer.wrap(hash(key).getBytes()),a));
});
使用 Flux.collectList()
将 Flux<String>
收集到集合成员的 Mono<List<String>>
中,然后使用 flatMapMany
调用带有集合成员列表的 HMGET
。
Flux.fromIterable(keys)
.flatMap(key -> {
ByteBuffer keyBytes = ByteBuffer.wrap(key.getBytes());
Mono<List<String>> setMembersMono = commands.sMembers(keyBytes).collectList();
ByteBuffer hashKeyBytes = ByteBuffer.wrap(hash(key).getBytes());
setMembersMono.flatMapMany(setMembers -> commands.hMGet(hashKeyBytes, setMembers));
});