Skip to content

Releases: redis/jedis

5.0.2

19 Oct 11:20
Compare
Choose a tag to compare

Changes

πŸ› Bug Fixes

  • Fix SORTABLE argument when creating a Search index using FT.CREATE (#3584)
  • Fix binary variants of XRANGE and XREAD commands (#3571)

πŸš€ New Features

  • Added broadcast support for FUNCTION LOAD methods (#3557)
  • Support GEOSHAPE field type in RediSearch (#3561)

🧰 Maintenance

  • Bump org.json:json from 20230618 to 20231013 (#3586)
  • Move pom.properties file into redis.clients.jedis package (#3589)
  • Warning about JedisMetaInfo movement (#3591)
  • Allow getting schema field name (#3576)

4.4.6

19 Oct 11:04
e247f63
Compare
Choose a tag to compare

Changes

πŸ› Bug Fixes

  • Fix SORTABLE argument when creating a Search index using FT.CREATE (#3584)
  • Fix binary variants of XRANGE and XREAD commands (#3571)

πŸš€ New Features

  • Added broadcast support for FUNCTION LOAD methods (#3557)
  • Support GEOSHAPE field type in RediSearch (#3561)
  • Support TOPK.LIST with WITHCOUNT option (#3495)

🧰 Maintenance

  • Bump org.json:json from 20230227 to 20231013 (#3472, #3586)
  • Move pom.properties file into redis.clients.jedis package (#3589)
  • Warning about JedisMetaInfo movement (#3591)
  • Allow getting schema field name (#3576)

5.0.1

26 Sep 11:01
Compare
Choose a tag to compare

Changes

πŸ”₯ Breaking Changes

  • Encode map in encoded object (#3555)
    • In the 5.0.0 release, the encoded/String variants of scripting methods return List<KeyValue<>> for a map reply - those now return Map<>.

πŸš€ New Features

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

🧰 Maintenance

  • Re-enabled FT.DROPINDEX and FT.ALTER in pipeline (#3549)
  • Added JavaDoc for GeoRadiusResponse (#3542)

Contributors

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

@sazzad16

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