Skip to content

Releases: redis/jedis

4.0.0

19 Dec 11:34
c404a85
Compare
Choose a tag to compare

🚀 New Features

  • Introduced JedisPooled
    An alternative to JedisPool which implements the same interfaces as JedisCluster, allowing easy switching between JedisCluster and JedisPooled.
  • Introduced JedisSharding
  • Introduced ClusterPipeline and ShardedPipeline
  • Introduced ReliableTransaction
  • Introduced UnifiedJedis
    UnifiedJedis can be anything depending on the ConnectionProvider or CommandExecutor. Currently, this is the base for JedisCluster, JedisPooled and JedisSharding.
  • Introduced ConnectionProvider interface and few implementations
  • Introduced CommandExecutor interface and few implementations
  • Added RedisJSON and RedisJSON 2 commands
  • Added RediSearch commands
  • Support exclusive range in XRANGE command (#2719)
  • Added ACL DELUSER and ACL GENPASS with bits option (#2697)

🔥 Breaking Changes (see all)

  • JedisCluster constructors with GenericObjectPoolConfig<Jedis> now accept GenericObjectPoolConfig<Connection>.
  • Most SortedSet methods are changed to return Java List instead of Set (#2709) See Full List
  • Many methods now return primitive values (long/boolean/double instead of Long/Boolean/Double) See Full List
  • ShardedJedisPool, Sharded, ShardedJedis, BinaryShardedJedis, ShardInfo, JedisShardInfo classes are removed.
  • BinaryJedis and BinaryJedisCluster classes are removed.
    Methods of these classes are available in Jedis and JedisCluster classes respectively.
  • Client and BinaryClient classes are removed.
  • redis.clients.jedis.commands package is reimplemented, meaning Commands interfaces are restructured.
  • Removed Sentinel class (#2744) (since 4.0.0-rc2)
    Sentinel methods are moved in Jedis class (just like Jedis 3.x)

🧰 Maintenance

  • Upgraded dependency org.slf4j:slf4j-api to version 1.7.32
  • Added dependency org.json:json version 20211205
  • Added dependency com.google.code.gson:gson version 2.8.9

🚃 Change List

  • Throw IllegalStateException by replacing invalid JedisDataException (#2393)
  • Support Sentinel with TLS (#2403)
  • Remove usage of infinite timeout from EVAL and EVALSHA commands (#2408)
  • Avoid NullPointException from SetFromList class (#2454)
  • JedisNoReachableClusterNodeException should extend JedisClusterOperationException (#2409)
  • Remove WATCH from Transaction (#2033)
  • JedisDataException should not be wrapped within Pool operations (#2501)
  • Remove SYNC command (#2499)
  • Remove ShardedJedisPipeline class (#2500)
  • Remove JedisPoolAbstract class and hide Pool.initPool() method (#1734)
  • Limit the access of setDataSource in Jedis (#2516)
  • Make raw variable private and should be accessed via getRaw() method (#2526)
  • Remove throwing IOException from JedisSocketFactory (#2528)
  • Remove JedisClusterHostAndPortMap (#2518)
  • Unify clustered and non-clustered interfaces (#2533)
  • CONFIG SET returns OK status (#2520)
  • Return type should be long (or any primitive) (#2547)
  • Pool extends GenericObjectPool (#2521)
  • Use Charset instead of String for Protocol.CHARSET (#2658)
  • Jedis 4 changes (#2693)
  • Improving ACL Command Support (#2697) (#2693)
  • Return List instead of Set where it makes sense (#2709) (#2693)
  • Implemented JedisSharding and ShardedPipeline (#2707) (#2693)
  • Upgrade test dependencies (#2720)
  • Support exclusive range in XRANGE command (#2683) (#2719)
  • Throw exception if JedisCluster cannot connect to any host-port (#2275) (#2721)
  • Address Javadoc warnings (and related changes) (#2730)
  • Easier constructors for pipeline classes (#2731)
  • Upgrade dependencies (#2740)
  • Remove deprecations that got remained (#2741)
  • Resolve XADD conflicts (#2742)
  • Remove Sentinel class (#2744)
  • Resource within cluster retry should be closed quietly (#2745)
  • Replace deprecated interface with new interface in JedisPoolConfig and ConnectionPoolConfig (#2749)
  • Use slf4j-simple to replace log4j implementation (#2753)

Contributors

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

@sazzad16, @yangbodong22011, @dengliming, @AvitalFineRedis, @JarvisCraft, @chinafzy, @zeekling, @chayim.

3.8.0

19 Dec 11:13
Compare
Choose a tag to compare

This is the last release planned for Jedis 3.x.

🚀 New Features

  • Added aclLogReset() method to support ACL LOG RESET subcommand (#2737)
    This should replace both aclLog(byte[]) and aclLog(String) methods.
  • Support binary version of CLUSTER GETKEYSINSLOT (#2689)

🧰 Other Changes

  • Refresh nodes when renewSlotCache (#2642)
  • Change in JedisClusterInfoCache.discoverClusterNodesAndSlots (#2682)
  • Do not catch checked Exception if it is not thrown (#2615)
  • Address Jedis version 4 breaking changes (#2737)
  • Deprecate SENTINEL SLAVES (#2673)
  • Upgrade Commons Pool to 2.11.1 (#2654)
  • Use slf4j-simple to replace log4j implementation (#2753)

Thanks @yangbodong22011, @zeekling, @adiamzn, @bokshitsky, @sazzad16 for contributing.

4.0.0-rc2

12 Dec 09:22
022a9af
Compare
Choose a tag to compare
4.0.0-rc2 Pre-release
Pre-release

This is a maintenance release for CVE-2021-44228, the Log4j security issue. This issue has no impact on Jedis, and Log4j is used only in its tests.

🧰 Maintenance

  • Bump log4j-core from 2.13.3 to 2.15.0 (#2723)
  • Address Javadoc warnings (#2730)

🚀 New Features

  • Easier constructors for pipeline classes (#2731)

3.7.1

12 Dec 08:30
Compare
Choose a tag to compare

This is a maintenance release for CVE-2021-44228, the Log4j security issue. This issue has no impact on Jedis, and only impacted its tests.

Changes

Maintenance

  • Bump log4j-core from 2.13.3 to 2.15.0 (#2723)
  • Limit Redis branch to 6.2 for Jedis branch 3 (#2714)
  • Use only SENTINEL REPLICAS in tests (#2673)
  • XADD wrong number of arguments message changed (#2672)
  • Ignore testing 'invalid multibulk length' (#2655)

4.0.0-RC1

09 Dec 10:31
e56e46b
Compare
Choose a tag to compare
4.0.0-RC1 Pre-release
Pre-release

🔥 Breaking Changes

  • Most SortedSet methods are changed to return Java List instead of Set (#2709)
  • Renamed RedisCommandObjects to CommandObjects and RedisClusterCommandObjects to ClusterCommandObjects

🚀 New Features

  • Implemented JedisSharding
  • Implemented ClusterPipeline and ShardedPipeline
  • Support exclusive range in XRANGE command (#2719)

🧰 Maintenance

  • Restored Jedis 3 sendCommand methods

4.0.0-beta4

28 Nov 05:24
Compare
Choose a tag to compare
4.0.0-beta4 Pre-release
Pre-release

🚀 New Features

  • Introduced JedisPooled
    An alternate to JedisPool which implements same interfaces as JedisCluster, allowing easy switch between JedisCluster and JedisPooled.

  • Implemented RediJSON 2 commands

  • Restored Jedis 3 classes/methods:

    • JedisSentinelPool class
    • JedisPubSub abstract class
    • BinaryJedisPubSub abstract class
    • JedisMonitor abstract class
    • Pipeline.syncAndReturnAll() method
  • Added/Changed ACL commands:

    • Added ACL DELUSER command
    • Added ACL GENPASS command with bits option
    • Added aclLogReset() method to support ACL LOG RESET sub-command replacing aclLog(options) method

🐛 Bug Fixes

  • Fixed NullPointerException in ClusterPipeline with commands without any key
  • Fixed resource leak in ClusterConnectionProvider

🧰 Maintenance

  • Overridden Document.toString() method (#2692, #2696)

4.0.0-beta3

14 Nov 10:35
Compare
Choose a tag to compare
4.0.0-beta3 Pre-release
Pre-release

🚀 New Features

🐛 Bug Fixes

  • Fixed some RedisJSON command arguments

🧰 Maintenance

  • Added tests for RedisJSON commands
  • Added tests for RediSearch commands

4.0.0-beta2

04 Nov 11:50
Compare
Choose a tag to compare
4.0.0-beta2 Pre-release
Pre-release
  • Restored official Jedis 3 classses JedisCluster, JedisPool, JedisFactory and others.
  • Added majority of RedisJSON commands

4.0.0-beta1

31 Oct 09:55
Compare
Choose a tag to compare
4.0.0-beta1 Pre-release
Pre-release
  • Introduced UnifiedJedis
  • Added RediSearch commands (FT.CREATE, FT.SEARCH)
  • Added RedisJSON commands (JSON.SET, JSON.GET, JSON.DEL)

3.7.0

31 Aug 05:52
Compare
Choose a tag to compare

Redis Commands and Arguments

  • XAUTOCLAIM Command #2498
  • CONFIG SET returns OK status #2525
  • SHUTDOWN with optional modifier #2544
  • Allow calling PUBSUB CHANNELS without a pattern #2555
  • Support TYPE option in SCAN command #2565
  • CLIENT LIST command with TYPE argument #2591
  • Support EXECABORT Error #2598
  • Few more Sentinel commands #2588
  • CLIENT PAUSE command with mode option #2601
  • More Cluster commands #2605
  • ROLE command #2607
  • FAILOVER command #2610
  • Support stralgo command #2586

Changes

  • Reduce lock granularity #2514
  • Allow to override sharded jedis pooled object factory #2612
  • Throw SHUTDOWN error received from Redis #2613

Dependencies

  • Upgrade commons-pool to 2.10.0 #2609

Maintenance

  • Warn Limit the access of setDataSource in Jedis #2522
  • New RestoreReplace recommendations #2534
  • Deprecate JedisClusterHostAndPortMap #2535
  • Deprecate set methods from socket factory #2530
  • Deprecate methods with 'byte[] keyCount' param #2548
  • Warn Pool extends GenericObjectPool #2576

Thanks to @s-sathish, @Shawyeok, @sabbey37, @bokshitsky, @yangbodong22011 for contributing!