github redis/jedis v4.0.0
4.0.0

latest releases: v5.2.0, v5.2.0-beta5, v5.1.5...
2 years ago

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

Don't miss a new jedis release

NewReleases is sending notifications on new releases.