DiceDB / dice

DiceDB is a redis-compliant, reactive, scalable, highly-available, unified cache optimized for modern hardware.
https://dicedb.io/
Other
6.83k stars 1.08k forks source link

Add support for command `GEORADIUSBYMEMBER` #1252

Open arpitbbhayani opened 2 weeks ago

arpitbbhayani commented 2 weeks ago

Add support for the GEORADIUSBYMEMBER command in DiceDB similar to the GEORADIUSBYMEMBER command in Redis. Please refer to the following commit in Redis to understand the implementation specifics - source.

Write unit and integration tests for the command referring to the tests written in the Redis codebase 7.2.5. For integration tests, you can refer to the tests folder. Note: they have used TCL for the test suite, and we need to port that to our way of writing integration tests using the relevant helper methods. Please refer to our tests directory.

For the command, benchmark the code and measure the time taken and memory allocs using benchmem and try to keep them to the bare minimum.

benbarten commented 2 weeks ago

Hey @arpitbbhayani,

I'd like to pick up this issue. Feel free to assign it to me.

apoorvyadav1111 commented 1 week ago

Hi @benbarten , Assigned. Thanks for contributing to DiceDB.

benbarten commented 1 week ago

A short update on this one:

I'm in the middle of implementing the logic to find members in the radius of a geo hash/member. Parts of this can likely be re-used or even extracted into a generic function as done in Redis. I'm planning to open a draft PR end of this week to align with other contributors on how to implement other geo commands. See this discussion for reference.