Skip to content

Releases: redis/jedis

4.4.5

26 Sep 11:52
Compare
Choose a tag to compare

Changes

🚀 New Features

  • Extend CLIENT SETINFO support with added suffix rules (#3509, #3536)
  • Added quote escaping helper functions for search queries (#3544)

🧰 Maintenance

  • Added JavaDoc for GeoRadiusResponse (#3542)

Contributors

We'd like to thank all the contributors who worked on this release!

@sazzad16

5.0.0

03 Sep 09:41
d023d2f
Compare
Choose a tag to compare

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

🧪 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.

  1. 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");
    }
}
  1. 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

03 Sep 12:42
Compare
Choose a tag to compare

Changes

🔥 Breaking Changes

  • Modify JedisBroadcastException (#3518)

🧰 Maintenance

  • pipelined() method in JedisSentineled directly returns Pipeline object (#3517)
  • Deprecations addressing Jedis 5.0 changes

5.0.0-beta2

14 Jun 13:49
c33bdf7
Compare
Choose a tag to compare
5.0.0-beta2 Pre-release
Pre-release

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

  • Support JSON.MERGE Command (#3429)
  • Cross cluster failover (#3310)

🚀 New Features

  • Polish 'pipelined()' in UnifiedJedis (#3442)
  • Add zdiffstore (#3454)

🐛 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

14 Jun 09:58
Compare
Choose a tag to compare

Changes

🐛 Bug Fixes

  • Shutdown ExecutorServices in multi node pipelines (#3467)

Contributors

We'd like to thank all the contributors who worked on this release!

@sazzad16, @jslopezgithub

Full Changelog: v4.4.2...v4.4.3

4.4.2

07 Jun 10:42
Compare
Choose a tag to compare

Changes

🚀 New Features

New in Redis 7.2:

🐛 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

21 May 10:02
9b94d07
Compare
Choose a tag to compare
5.0.0-beta1 Pre-release
Pre-release

Changes

🚀 New Features

  • Support RESP3 protocol through URI/URL (#3403)

This release includes support enabling RESP3 connection on supported Redis servers.

  1. 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");
    }
}
  1. 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

17 May 10:13
65d47fc
Compare
Choose a tag to compare

Changes

🚀 New Features

  • Add support for WAITAOF command (#3393)

🐛 Bug Fixes

  • Fix: client setname need ignore syntax error in redis4 (#3411)

Contributors

We'd like to thank all the contributors who worked on this release!

@gniadeck and @yangbodong22011

5.0.0-alpha2

08 May 10:55
4316877
Compare
Choose a tag to compare
5.0.0-alpha2 Pre-release
Pre-release

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.

  1. 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");
    }
}
  1. 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

08 May 11:08
52a10e1
Compare
Choose a tag to compare

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

  • Improve cluster slots slotNodes using arrays (#3373)
  • Newly disconnected connections are set as broken (#3381)