What Is New in Jedis 3.1
Jedis 3.1.0 introduces a host of updates focused on new Redis commands, performance improvements, and essential bug fixes. This release keeps the client aligned with the latest Redis server capabilities while enhancing stability for production use.
| Category | Key Changes |
|---|---|
| New Features | Support for Redis 5.0 commands (XADD, XREAD, etc.), ZPOPMAX, ZPOPMIN, and ACL commands. |
| Improvements | Reduced connection overhead, better exception handling, and optimized internal resource usage. |
| Bug Fixes | Resolved issues with connection leaks, SSL handshakes, and pipeline execution. |
| Deprecations | Marked several older methods for future removal. |
What new Redis commands are supported?
Jedis 3.1 adds full support for the stream data type introduced in Redis 5.0. This includes core commands like
XADD, XREAD, XRANGE, and XREVRANGE for building
event-sourcing and message streaming features.
You also get the blocking sorted set commands ZPOPMAX and ZPOPMIN for atomic pops. For
access control, the new ACL commands are now available, which is crucial for securing Redis 6.0
instances.
How is connection management better?
The underlying connection handling has been tuned to be more efficient. This reduces the overhead when acquiring and returning connections to the pool, which matters for high-throughput applications.
We fixed a critical bug where connections weren't being properly returned to the pool after certain exceptions, which could lead to leaks. The SSL handshake process is also more robust now, preventing silent failures.
What breaking changes should I watch for?
This release deprecates a number of older methods to clean up the API. While they still work, you'll see
deprecation warnings. It's a good time to check your code for methods like clientList() and start
migrating to the newer alternatives.
In practice, most applications won't break immediately, but you should plan to update these calls to avoid issues in a future major version.
Were there any critical pipeline fixes?
Yes, a significant bug in the pipeline sync logic was resolved. Previously, a NullPointerException
could be thrown during sync if the connection was set as broken, which interrupted command execution.
This fix makes the pipeline behavior much more predictable and reliable, especially in environments where network issues might occur. Your batch operations should now complete without unexpected exceptions.
FAQ
Do I need to change my code to use the new stream commands?
Yes, you'll need to update your
Jedis dependency to 3.1.0. The new methods are available on the standard Jedis client object, so
you can start calling jedis.xadd() and other stream methods directly.
I use connection pooling - did anything change?
The core pool interface remains the same, but
the internal implementation is more efficient. The fix for connection leaks is the biggest deal here, as it
prevents a gradual depletion of available connections over time.
Is SSL connectivity more reliable now?
Absolutely. The SSL handshake process was improved to
handle errors correctly. Before, some SSL issues could cause silent failures that were hard to debug. Now,
exceptions are properly propagated.
What's the simplest way to see deprecated methods?
Just compile your project with the new
version. The deprecated methods will trigger compiler warnings, showing you exactly which parts of your code
need eventual updating.
Should I upgrade to 3.1.0 in production?
If you're using Redis 5.0+ features like streams or
need the connection leak fixes, then yes. For existing stable deployments, test the upgrade in a staging
environment first, but the changes are largely additive and non-breaking.