Skip to content

Releases: redis/jedis

4.2.0-m1

10 Mar 10:41
3590438
Compare
Choose a tag to compare
4.2.0-m1 Pre-release
Pre-release

Changes

  • Support COMMAND [...] commands (#2922)
  • Support vector similarity (#2926)
  • KeyValue util class and (B)(L/Z)MPOP commands (#2931)
  • Support FUNCTION [...] commands (#2878)
  • Cluster EPOCH commands and refactor tests (#2927)
  • Support CLUSTER COUNT-FAILURE-REPORTS (#2923)
  • Support XGROUP CREATECONSUMER (#2919)
  • Support passing args to MODULE LOAD (#2918)
  • Configure socket buffer size through system property (#2915)
  • Renew cluster slots strategy update (#2643)
  • Support command MEMORY PURGE and MEMORY STATS (#2908)
  • Support RedisBloom (#2875)
  • Support [NX|XX|GT|LT] options in EXPIREAT and PEXPIREAT (#2874)
  • Add javadoc for DatabasePipelineCommands (#2873)
  • Support BGSAVE SCHEDULE command (#2871)
  • Support EXPIRETIME and PEXIRETIME (#2852)
  • support CONFIG GET parameter [parameter ...] (#2863)
  • Support CLIENT NO-EVICT (#2866)
  • Support LCS (#2855)
  • Delete unused interface (#2865)
  • Support RedisTimeSeries (#2854)

🐛 Bug Fixes

  • Only String param in Constructors is an URL (#2872)
  • Fix wrong CommandObject called for strAlgoLCSKeys (#2859)

Contributors

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

@Avital-Fine, @dengliming, @sazzad16, @yangbodong22011 and @zeekling

4.1.1

31 Jan 11:17
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Fixed the problem of abnormal socket status during DNS resolution (#2849)

🧰 Maintenance

  • Fix typo in method name connectToFirstSuccsefulHost (#2853)

Contributors

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

Thanks @leonchen83, @yangbodong22011, @andrewmcnamara for contributing.

4.1.0

26 Jan 05:45
1a451e4
Compare
Choose a tag to compare

🚀 New Features

Support GEOSEARCH and GEOSEARCHSTORE commands (#2771)
Support new ZRANGE(STORE) (#2817)
Add database and some other commands in pipeline (#2832)
Subscribe in JedisCluster (UnifiedJedis) (#2828)
Support cluster addslotsrange and cluster delslotsrange (#2823)
Support exclusive XPENDING range from params (#2830)
Support CLUSTER LINKS command (#2776)
Added the BYTE|BIT option for bitcount (binary) (#2768)
Added the BYTE|BIT option for bitcount (string) (#2779)
Support SHUTDOWN [NOW] [FORCE] [ABORT] parameters (#2812)
Support XINFO STREAM FULL (#2746)
ACL patterns for Pub/Sub channels (#2750)
Address ACL V2 changes (#2841)
Support REPLICAOF Command (#2811)
Support LOLWUT command (#2800)
Support SINTERCARD Command (#2821)
Support SORT_RO (#2843)
Address XINFO GROUPS command name (#2802)

🧰 Changes

Tries all hosts resolved for DNS name (#2722)
Fix StackOverflowError in Transaction (#2827)
Polish XINFO STREAM FULL implementation (#2801)
Polish #2823 (18043de) and ClusterCommandsTest (#2831)
Deprecate unused interfaces (afcce7c)

Thanks @AvitalFineRedis, @zeekling, @sazzad16, @adiamzn, @Avital-Fine for contributing.

4.0.1

29 Dec 13:10
Compare
Choose a tag to compare

🐛 Bug Fixes

  • Fix the zrevrangeByScore max/min parameter order problem in the transaction (#2765)

🧰 Maintenance

  • Add RediSearch Pipeline Commands (#2770)

Contributors

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

@leonchen83, @yangbodong22011, @AvitalFineRedis.

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)