-
-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Swap ioredis for iovalkey #194
Conversation
Swap to a default redis client with a higher chance of getting maintained. iovalkey is a friendly fork maintained by @mcollina. I'm guessing this would be a breaking/major version bump if this lands.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes lgtm but I don't know if we should land this to fastify-redis or create sth like fastify-iovalkey
CC @fastify/plugins
Just curious, the issue where this is being discussed in the ioredis repo mentions that they recommend migrating to the official client: redis/ioredis#1870 (comment). Have we considered that, versus another community-maintained package which may end up having the same maintenance issues? |
Yeah honestly I had the same question in mind It also applies to |
I would go for the official one if it is a long term choice. I also notice |
Oh I'm not challenging the original choice of ioredis by any means, the official client may not have even existed back then as far as I know. If we're to revise that decision now I think the official client might be the sensible option to choose, unless there are obvious reasons to avoid it (e.g. licensing or feature-completeness) |
I means the decision shown on the issue about using It is a good time to re-visit the decision made in the past.
|
I've forked ioredis to iovalkey because:
None of the options looks good right now. I would likely hold for now, and possibly switch if the need arises. |
I don't like post with last updated date only, it seems to give a fault image to the reader the content is up-to-date and latest. It's last update on Jan 2, 2024 and all the others scripts (including result image) is written or provided 3 years ago. |
Here the result of using https://github.com/poppinlp/node_redis-vs-ioredis
The benchmark may differ between platform, but it does not provide an extreme performance boost between cc @kibertoad |
Well at least we know that performance is not an issue then |
@climba03003 redis has autopipelining enabled by default, while ioredis doesn't. Can you check again with it enabled in ioredis? |
Updated at 2024-04-02 23:00 (UTC+8) I am a bit surprise on the result, after the second run with Running with
Running with
|
I don't have a strong opinion on the matter, but it does seem like if we go the ioredis route, iovalkey might be the better long term solution (if @mcollina agrees). Is the official redis client a drop in replacement as well? I can make another PR with that when I have time. |
Unless the API and protocol is different, I don't see a reason to create a completely new plugin with a different name. |
I 100% expect the protocol to change in Redis 8. |
Closing until its more clear how to approach the issue. |
Swap to a default redis client with a higher chance of getting maintained. iovalkey is a friendly fork maintained by @mcollina. I'm guessing this would be a breaking/major version bump if this lands.
Checklist
npm run test
andnpm run benchmark
and the Code of conduct