首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Reactive和hMGet通量

Reactive和hMGet通量
EN

Stack Overflow用户
提问于 2019-06-07 11:56:24
回答 1查看 158关注 0票数 1

我是个响应式编程新手。我正在尝试以响应式的方式查询Redis,使用Spring Webflux获取smembers,然后使用该结果查询hmget。sMembers查询的结果是Flux>,hMGet期望第二个参数作为集合。我不确定如何以正确的方式编写此函数。有没有人能帮我纠正一下。

代码语言:javascript
运行
复制
    return Flux.just(keys)
            .map(key -> { 
                 return reactiveClusterSetCommands.sMembers(ByteBuffer.wrap(key.getBytes())).flatMap(a ->  reactiveClusterHashCommands.hMGet(ByteBuffer.wrap(hash(key).getBytes()),a));
            });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-07 19:36:34

使用Flux.collectList()Flux<String>收集到集合成员的Mono<List<String>>中,然后使用flatMapMany调用包含集合成员列表的HMGET

代码语言:javascript
运行
复制
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));
  });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56487759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档