spring-projects/spring-data-redis

`ReactiveKeyCommands.Exists` to check multiple key existence

kutlueren opened this issue · 7 comments

I am using the function to check if a key exist or not, but actually I have a list of keys that needs to be checked. I can't find a func that would accept a list of keys and do this as a bulk check. Is there a reason why this was not implemented? if not, would that be possible to implement it? it is already implemented in jedis.

I have achieved this by the following implementation:

 redisOperations.execute { connection ->
                val keyCommands = connection.keyCommands()
                val existsMonos = keys.map { key ->
                    keyCommands.exists(ByteBuffer.wrap(key))
                        .map { it == true }
                        .onErrorReturn(false)
                }
                Mono.zip(existsMonos) { it }
            }.awaitFirst()

redisOperations is a ReactiveRedisOperations type.

The versions:

org.springframework.data:spring-data-redis:3.2.2
java 21.0.2-librca
Kotlin compiler version 1.9.22

Thank you

Currently, exists supports only single-key arguments. It makes sense to introduce method overloads returning a result for multiple keys.

May I handle this issue? I will figure it out and open PR if possible.

Sure, feel free to have a look @AnneMayor

Thank, @mp911de I will go on after #2905 PR merged :)

Awesome to see that it is being tackled 👏🏻

@kutlueren
Hi🙂Thanks for asking. I am handling this issue for now. I am going to open PR within this weekend. If there's no PR after that you can take this one instead🙂

@AnneMayor thanks a lot! I initially wanted to tackle it but it was beyond my comprehension. I am happy to review your PR though 🙂