我正在尝试获取所有键,然后使用ReactiveRedisTemplate
Spring Data Redis中的 a 获取它们的所有值
(我知道这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 的新手,所以我可能遗漏了一些东西。