Skip to content
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

Is this package still actively maintained? #1870

Open
qsymmachus opened this issue Mar 21, 2024 · 11 comments
Open

Is this package still actively maintained? #1870

qsymmachus opened this issue Mar 21, 2024 · 11 comments

Comments

@qsymmachus
Copy link

qsymmachus commented Mar 21, 2024

Many people and organizations rely on this package, but the last commit was made in September 2023. The list of open PRs is also growing, with most of them left with no review from a collaborator, let alone merged.

Now that @luin is no longer the primary maintainer of ioredis, who can we rely on for ongoing maintenance? Who is reviewing issues and PRs? Do we need to expand the list of collaborators?

@qsymmachus
Copy link
Author

I don't enjoy spamming people, but everyone who relies on ioredis is waiting for someone to weigh in here 🙏

@banker / @vmihailenco / @yossigo / @trevor211 / @itamarhaber / @oranagra / @yangbodong22011 / @ShooterIT / @enjoy-binbin / @hpatro / @slorello89 / @hwware

@josh-i386g
Copy link

josh-i386g commented Mar 29, 2024

a lot of unaddressed issues were closed by stalebot simply because no one responded (hella stupid right). there's a lot more than the current open ones.

@enjoy-binbin
Copy link

i am not the person in charge. this package will still be maintained, it just need take some times when the maintainer have time. recently, there have been a lot of things about redis changing the license, i guess they don’t have much time right now. i took a quick look, and there did not seem to be any serious problems here. this project is now mature and stable and the maintainers usually do not have a lot of free time to check with every PR.

@uglide
Copy link
Contributor

uglide commented Apr 1, 2024

Hi @qsymmachus

As @enjoy-binbin mentioned above, ioredis is a mature project with no critical issues. To make the project even more stable, we are working on a maintenance release to make it more reliable when you connect to Redis Cluster.

It is worth mentioning that the most advanced Redis client for Node.js is Node-Redis. In Node-Redis V5, we will release support for major features like RESP3 support, Client-Side caching, and many more. That's why, for new projects, we recommend using Node-Redis instead.

In the future, we will consider adding a smooth transition path to Node-Redis with ioredis API-compatible wrapper. This ensures that switching between client libraries is as easy as swapping dependencies and imports.

If you are missing any notable feature in Node-Redis, please share your thoughts here. After the Node-Redis v5 release, we want to start a community discussion to collect all missing and long-awaited features and build a public roadmap for Node-Redis V6 to address those requests.

@kibertoad
Copy link

@uglide Isn't ioredis still both faster (see https://ably.com/blog/migrating-from-node-redis-to-ioredis) and also supporting more use-cases? E. g. node-redis still doesn't support commandTimeout parameter.

@uglide
Copy link
Contributor

uglide commented Apr 2, 2024

@kibertoad Thanks for the question!
The article you refer to is 3 years old and has no source code that allows us to reproduce the results, except for showing the code example where Node-Redis is faster. Not to mention that the use case described in the article is niche/rare, and typically, you should try to add pipelining before doing any further optimizations, which Node-Redis is doing by default.

Support for command timeouts has been on our radar for some time. That's why we want to start a community discussion to collect all the missing features in Node-Redis after the V5 release.

@kibertoad
Copy link

We found out that if even one of the arguments to the Redis command is a buffer, Node Redis performs three separate socket writes per argument every time, plus one for the command string. For a script with 10 arguments, this would be 31 socket writes.

@uglide Would you say that this is an intended behaviour and generally is fine?

@uglide
Copy link
Contributor

uglide commented Apr 2, 2024

@kibertoad As I pointed out above, the article refers to the state where Node-Redis was three years ago; since then, It has been rewritten. You can see it if you follow the link from the article and try to switch to the master branch - the file doesn't exist anymore. The new implementation is much more efficient, and you can check the code yourself.

@billnbell2
Copy link

@kibertoad Thanks for the question! The article you refer to is 3 years old and has no source code that allows us to reproduce the results, except for showing the code example where Node-Redis is faster. Not to mention that the use case described in the article is niche/rare, and typically, you should try to add pipelining before doing any further optimizations, which Node-Redis is doing by default.

Support for command timeouts has been on our radar for some time. That's why we want to start a community discussion to collect all the missing features in Node-Redis after the V5 release.

OK but maybe someone could write an article on how to migrate? I am unfamiliar with node-redis. I do know Elastic Cache is supporting a ton more advanced features and would like to improve performance and support clustering more.

@mcohen75
Copy link

I've proposed updating the README here to indicate that new projects should use Node-Redis. We recently started using ioredis and discovered this issue a few weeks into implementation. Teams in our situation would benefit from knowing about this as early as possible.

@silverwind
Copy link
Contributor

silverwind commented Apr 16, 2024

node-redis does not support redis-sentinel, it's not an alternative if that is needed.

Also, In my personal opinion, ioredis is the better engineered module.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants