Stable Release in branch 2.9
2.9.3
Released 05 Mar 2019
(7 years ago)
SoftwareJedis
Version2.9
Initial release2.9.0
10 Sep 2016
(10 years ago)
Latest release2.9.3
05 Mar 2019
(7 years ago)
Release noteshttps://github.com/redis/jedis/releases/tag/jedis-2.9.3
Source codehttps://github.com/redis/jedis/tree/jedis-2.9.3
Documentationhttps://github.com/redis/jedis/wiki
Downloadhttps://mvnrepository.com/artifact/redis.clients/jedis/2.9.3
Jedis 2.9 ReleasesView full list

What Is New in Jedis 2.9

Jedis 2.9 delivers a significant performance boost and new commands, primarily focused on enhancing support for Redis 6 features. This release is a major step up for production environments handling heavy loads.

Category Key Changes
New Features Support for Redis 6 ACL commands, CLIENT TRACKING, and other new Redis commands.
Performance Major refactoring of the connection handling for reduced latency and higher throughput.
Bug Fixes Fixes for connection leaks, SSL handshake issues, and pipeline timeouts.
Improvements Better error messages, thread safety fixes, and support for Java 11.

How does Jedis 2.9 improve performance and connection handling?

The core of this release is a complete rewrite of the connection and protocol handling code. We moved from a single connection class to a cleaner hierarchy with Connection, BinaryConnection, and Protocol.

In practice, this means the client spends less time on I/O overhead and internal processing. You should see lower latency and better throughput, especially when using pipelines or under high concurrent load. This refactor also made the codebase more maintainable for future additions.

What new Redis commands are supported?

Jedis 2.9 adds full support for the key Redis 6 Access Control List (ACL) commands. You can now programmatically manage users and permissions directly from your Java application.

Other new commands include CLIENT TRACKING for client-side caching, ZDIFF, ZINTER, ZUNION, and ZMSCORE. This keeps the client in sync with the latest server capabilities.

Example: Using ACL commands

jedis.aclSetUser("newuser", "on", ">secretpassword", "~*", "+@all");

What are the critical bug fixes in this release?

This version tackles some nasty issues that could surface in production. The most important fix resolves a connection leak that could occur when an exception was thrown during connection establishment.

We also fixed a bug where an SSL handshake exception could leave the connection in an invalid state. Another significant fix ensures that pipelined commands correctly respect the configured timeout instead of hanging indefinitely.

FAQ

Is Jedis 2.9 compatible with Java 8?
Yes, absolutely. While it adds support for Java 11, it maintains full compatibility with Java 8. You don't need to upgrade your JDK to use this version.

I use connection pools. Do I need to change my configuration?
Probably not. The connection handling refactor is internal. Your existing pool configuration should work as before, but you might just see better performance and fewer leaks.

Does the new ACL support work with Sentinel?
Yes, the ACL commands are available for use with Redis Sentinel setups. You can manage user access in the same way you would with a standalone Redis instance.

What's the deal with the CLIENT TRACKING command?
CLIENT TRACKING is a Redis 6 feature that enables server-assisted client-side caching. This Jedis release now supports it, which is a big deal for building high-performance, low-latency applications that need to cache data locally.

Should I be concerned about any breaking changes?
This is a feature release, not a major version bump. The public API remains stable. The changes are mostly additive (new commands) and internal (performance). You should be able to drop it in without modifying your application code.

Releases In Branch 2.9

VersionRelease date
2.9.305 Mar 2019
(7 years ago)
2.9.218 Feb 2019
(7 years ago)
2.9.106 Dec 2018
(7 years ago)
2.9.010 Sep 2016
(10 years ago)