Releases: redis/jedis
5.0.0
What's New?
Automatic Cross-Cluster Failover
We're happy to introduce the Cross-Cluster Failover feature in Jedis. This feature provides high availability and resilience by allowing seamless transitions between Redis clusters during unforeseen failures or downtimes. It's a built-in tool to minimize manual intervention and downtime and ensure a more resilient application infrastructure.
Learn more about how you can automate the failover process in our documentation.
Full Redis 7.2 and RESP3 Support
Examples to enable RESP3 are included later in this release note.
Changes
🔥 Breaking Changes (Listed here)
🚀 New Features
- Support RESP3 (#3293, #3387, #3388, #3389, #3403, #3507)
- Support Sharded PubSub (#3396)
- Introduce PipelineBase for Pipeline and multi node pipeline classes (#3437, #3442)
- 'double' timeout parameter for BLMPOP and BZMPOP commands (#3444)
🧪 Experimental Features
- Cross cluster failover (#3310)
- Allow setting default dialect for RediSearch module (#3452)
- Support JSON.MERGE command (#3429)
- Support TOPK.LIST with WITHCOUNT option (#3495)
🐛 Bug Fixes
- Fix return value of HRANDFIELD with values when count is negative (#3425, #3430)
- Return List instead of Set in ZDIFF, ZINTER, ZUNION commands (#3431)
🧰 Maintenance
- Deprecate RedisJSON v1 support (#3503)
- Deprecate RedisGraph support (#3504)
- Deprecate Sharding/Sharded feature (#3386)
- Bump org-json:json from 20230227 to 20230618 (#3472)
RESP3 Examples
This release introduces enabling RESP3 Redis connection, when the Redis server supports it.
- Enable RESP3 to a UnifiedJedis object:
import redis.clients.jedis.DefaultJedisClientConfig;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.UnifiedJedis;
class DoResp3 {
public static void main() {
HostAndPort hnp = HostAndPort.from("localhost:6379");
UnifiedJedis c = UnifiedJedis(hnp, DefaultJedisClientConfig.builder().resp3().build());
c.set("foo", "value!");
c.get("foo");
}
}- Enable RESP3 to a Jedis object:
import redis.clients.jedis.DefaultJedisClientConfig;
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
class DoResp3 {
public static void main() {
HostAndPort hnp = HostAndPort.from("localhost:6379");
Jedis c = Jedis(hnp, DefaultJedisClientConfig.builder().resp3().build());
c.set("foo", "value!");
c.get("foo");
}
}4.4.4
5.0.0-beta2
Changes
🔥 Breaking Changes
- Use
List<KeyValue>to read RESP3 Map reply (#3456) - Allow setting default dialect for search module (#3452)
- Separate interfaces for RedisJSON v1 and v2 commands (#3459)
- Refactor Search Aggregation codes (#3451)
- Modify TimeSeries commands after RESP3 update (#3417, #3461)
- 'double' timeout parameter for BLMPOP and BZMPOP (#3444)
- Return List instead of Set in ZDIFF, ZINTER, ZUNION (#3431)
- Modify BLPOP and BRPOP return types (#3440)
- Modify BZPOPMAX and BRPOPMIN return types (#3439)
- Use Keyword(s) in params classes (#3434)
- Introduce PipelineBase for Pipeline and multi node pipeline classes (#3437)
- Fix return value of HRANDFIELD With Values when count is negative (#3425, #3430)
🧪 Experimental Features
🚀 New Features
🐛 Bug Fixes
🧰 Maintenance
- Bump maven-release-plugin from 3.0.0 to 3.0.1 (#3457)
- Bump maven-source-plugin from 3.2.1 to 3.3.0 (#3445)
- Bump maven-bundle-plugin from 5.1.8 to 5.1.9 (#3424)
- Bump maven-gpg-plugin from 3.0.1 to 3.1.0 (#3398)
- Bump maven-surefire-plugin from 3.0.0 to 3.1.2 (#3397, #3463)
- Make ClusterPipeliningTest faster (#3465)
- Updated Sentinel Tests (#3443)
Contributors
We'd like to thank all the contributors who worked on this release!
@s-sathish, @sazzad16, @shacharPash, @uglide and @yangbodong22011
4.4.3
Changes
🐛 Bug Fixes
- Shutdown ExecutorServices in multi node pipelines (#3467)
Contributors
We'd like to thank all the contributors who worked on this release!
Full Changelog: v4.4.2...v4.4.3
4.4.2
Changes
🚀 New Features
New in Redis 7.2:
- Add support for the new CLUSTER MYSHARDID command (#3423)
- Add support for
inactivefield in XINFO CONSUMERS reply (#3422) - Add support for
active-timefield in XINFO STREAM reply (#3421)
🐛 Bug Fixes
- Do not propagate exceptions to the application code if CLIENT SET-INFO commands is not supported or blocked by ACL rules (#3449) (#3458)
🧰 Maintenance
- Add an option to ignore cluster init error (#3455)
- Bump maven-release-plugin from 3.0.0 to 3.0.1 (#3457)
- Bump maven-bundle-plugin from 5.1.8 to 5.1.9 (#3424)
Contributors
We'd like to thank all the contributors who worked on this release!
@sazzad16, @dependabot, @dependabot[bot] and @yangbodong22011
Full Changelog: v4.4.1...v4.4.2
5.0.0-beta1
Changes
🚀 New Features
- Support RESP3 protocol through URI/URL (#3403)
This release includes support enabling RESP3 connection on supported Redis servers.
- One can pass enable RESP3 with a UnifiedJedis connection via:
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.UnifiedJedis;
class DoResp {
public static void main() {
HostAndPort hnp = HostAndPort.from("localhost:6379");
UnifiedJedis c = UnifiedJedis(hnp, DefaultJedisClientConfig.builder().protocol(RedisProtocol.RESP3).build());
c.set("foo", "value!");
c.get("foo");
}
}
- One can pass enable RESP3 with a Jedis connection via:
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
class DoResp {
public static void main() {
HostAndPort hnp = HostAndPort.from("localhost:6379");
Jedis c = Jedis(hnp, DefaultJedisClientConfig.builder().protocol(RedisProtocol.RESP3).build());
c.set("foo", "value!");
c.get("foo");
}
}
Full Changelog: v5.0.0-alpha2...v5.0.0-beta1
4.4.1
5.0.0-alpha2
This release includes support for RESP3, it should be treated as an alpha. Please note response types change for those using RESP3 - meaning there breaking changes. Today this includes support for the following:
- UnifiedJedis connections
- Jedis connections
- JedisPool
- JedisPooled
- JedisCluster
- JedisSharding
- Pub/Sub on RESP3 (#3388)
- Sharded Pub/Sub (#3396)
- RedisStack support
- ClusterPipeline
- ShardedPipeline (not fully supported)
This release introduces two different ways to enable a RESP3 redis connection, when your redis server supports RESP1.
- One can pass enable RESP3 with a UnifiedJedis connection via:
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.UnifiedJedis;
class DoResp {
public static void main() {
HostAndPort hnp = HostAndPort.from("localhost:6379");
UnifiedJedis c = UnifiedJedis(hnp, DefaultJedisClientConfig.builder().protocol(RedisProtocol.RESP3).build());
c.set("foo", "value!");
c.get("foo");
}
}
- One can pass enable RESP3 with a Jedis connection via:
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;
class DoResp {
public static void main() {
HostAndPort hnp = HostAndPort.from("localhost:6379");
Jedis c = Jedis(hnp, DefaultJedisClientConfig.builder().protocol(RedisProtocol.RESP3).build());
c.set("foo", "value!");
c.get("foo");
}
}
Changes
🔥 Breaking Changes
- Remove deprecated interfaces (#3391)
🧰 Maintenance
- Deprecated Sharding/Sharded feature (#3386)
Full Changelog: v5.0.0-alpha1...v5.0.0-alpha2
4.4.0
Changes
4.4.0-rc1 release notes
4.4.0-m2 release notes
4.4.0-m1 release notes
Following are the changes only since the last milestone release. Please check the notes of milestone releases for all changes.
🧰 Maintenance
4.4.0-rc1
Changes
🔥 Breaking Changes
🧪 Experimental Features
- OSS Broadcast support (#3285)
- FT.SEARCH, FT.AGGREGATE, etc commands are round robin mode by default (#3375)
- Support iteration for SCAN, FT.SEARCH, FT.AGGREGATE commands (#3378)
- Abstraction for JSON object mapper (#3319)
- Add a float array to byte array utility method (#3374)
🚀 New Features
- Support Z[REV]RANK command with score option (#3364)
- Avoid using QUIT command (#3353)
- Support client no-touch command (#3367)
- ACL LOG support entry-id (#3366)
- Support report libname and libver to Redis (#3356)
- Support 'multi()' from JedisPooled (UnifiedJedis) (#3361)
- Obtain multiple pipelines concurrently. high performance improvement (#3331)
- Support parsing '-nan' (#3329)
🐛 Bug Fixes
- Fix GraphCommandObjects in multi node (#3362)
🧰 Maintenance
- Improve safety of MultiNodePipelineBase under multi-thread (#3330)
- Bump maven-release-plugin from 2.5.3 to 3.0.0 (#3332)
- Bump maven-surefire-plugin from 2.22.2 to 3.0.0 (#3327)
- Bump maven-compiler-plugin from 3.10.1 to 3.11.0 (#3313)
- Bump maven-javadoc-plugin from 3.4.1 to 3.5.0 (#3296)
- Bump json from 20220924 to 20230227 (#3312)
- Use Redis version independent error message for NOPERM and system independent locale for Double (#3318)
- Address redis/redis#11942 and use MatcherAssert#assertThat (#3335)
- Fix test with issue hidden due to optional client name (#3357)
- Test: More UDS test (#3328)
Contributors
We'd like to thank all the contributors who worked on this release!
@sazzad16, @yangbodong22011, @stillerrr, @chenshi5012, @clebersonp and @dependabot[bot]