Jedis 8.0.0 completes the client class consolidation started in 7.0.0, modernizes protocol defaults, tightens security defaults, and adds command coverage for Redis 8.8 and the Redis 8.10 preview.
- RESP3 auto-negotiation on by default for all UnifiedJedis-based clients (with graceful RESP2 fallback)
- Final removal of legacy JedisPooled / JedisSentineled classes in favor of the RedisClient family introduced in 7.0.0
- Removal of deprecated UnifiedJedis public constructors
- Internal refactoring that affects users of low-level extension points (custom CommandExecutor, Transaction subclasses, ClusterPipeline, CommandObjects) — protocol and connection wiring is now explicit at construction time
- Search modernization — the low-level cursor APIs are superseded by ftAggregateIterator(), and the manual broadcast API is removed (Redis 8.0+ broadcasts FT.CREATE server-side)
- TLS hostname verification enforced by default in DefaultJedisSocketFactory
- New Redis 8.8 command coverage — XNACK, JSON.SET FPHA, Array commands, INCREX, COUNT aggregator on ZINTER / ZUNION(STORE) and their *STORE variants, multi-aggregator TS.RANGE / TS.MRANGE, plus an experimental COLLECT parameter for FT.AGGREGATE
- Redis 8.10 command coverage — HIMPORT (Hinted Hash Templates), FT.ALIASLIST, MAXCOUNT / MAXSIZE on XREAD and XREADGROUP, SUNIONCARD / SDIFFCARD, LMOVEM / BLMOVEM, TS.READ, TS.NRANGE / TS.NREVRANGE, TS.QUERYLABELS, and EXCLUDEEMPTY on TS.MRANGE / TS.MREVRANGE
For step-by-step upgrade instructions, see the v7 → v8 migration guide: https://redis.github.io/jedis/migration-guides/v7-to-v8/
Changes
🔥 Breaking Changes
- Remove unusable aclLogBinary() methods (#4580)
- Tighten Connection.initializeFromClientConfig() visibility to package-private (#4548)
- CommandObjects refactoring : Enforce protocol (#4515, #4514, #4513)
- Bump org.apache.commons:commons-pool2 from 2.12.1 to 2.13.1 (#4409)
- Fix Connection Close Exception Handling for commons-pool2 2.13.1 (#4439)
- Switch to RESP3 as default protocol version (#4468)
- Drop deprecated classes and constructors (#4488)
- Align Search APIs and behaviour with Redis 8.0+ (#4173)
- refactor: decouple Transaction from Jedis (#4440)
- Introduce request & response policy support (#4411)
- Remove unused leftovers from JedisSharding (#4348)
🧪 Experimental Features
- Add new COLLECT parameter for FT.AGGREGATE (#4534)
🚀 New Features
- [Redis 8.10] Add HIMPORT (Hinted Hash Templates) support (#4667)
- [Redis 8.10] Add FT.ALIASLIST search command support (#4619)
- [Redis 8.10] Add MAXCOUNT and MAXSIZE options to XREAD and XREADGROUP (#4627)
- [Redis 8.10] Add SUNIONCARD and SDIFFCARD commands (#4638)
- [Redis 8.10] Add LMVOVEM/BLMOVEM commands (#4635)
- [Redis 8.10] Support TS.NRANGE and TS.NREVRANGE time series commands (#4650)
- [Redis 8.10] Add TS.QUERYLABELS support to the client (#4651)
- [Redis 8.10] Regenerate command flags registry from Redis 8.10-rc2 (#4653)
- [Redis 8.10] Regenerate command flags registry from Redis 8.8 (#4652)
- [Redis 8.10] Add EXCLUDEEMPTY option to TS.MRANGE / TS.MREVRANGE (#4641)
- [Redis 8.10] Add support for the TS.READ time series command (#4642)
- Add VISMEMBER vector set command (#4599)
- Mark connections broken on protocol I/O failures (#4549)
- Improve MultiDbTransaction functionality and test coverage (#4561)
- Expose renewSlotCache on JedisCluster as public API (#4555)
- TimeSeries: reduce overhead on single-aggregator TSElement path (follow-up to #4504) (#4537)
- Introduce INCREX command (#4526)
- Support for 'Array' commands (Redis 8.8) (#4532)
- Add support for CONFIG GET and SET commands in UnifiedJedis (#4518)
- Add out-of-band push notification handling (#4489)
- Add
COUNTaggregator support forZINTER/ZINTERSTORE/ZUNION/ZUNIONSTORE(Redis 8.8) (#4506) - TimeSeries: support multiple aggregators in TS.RANGE/TS.MRANGE (CAE-792) (#4504)
- Redis 8.8: Add XNACK support (#4494)
- Add support for FPHA argument with JSON.SET (Redis 8.8) (#4478)
- #4469 The connection pool cannot be accessed from the RedisSentinelClient (#4470)
- fix : [ClusterPipeline] ExecutorService/thread is created and destroyed too frequently in ClusterPipeline (#4479)
🐛 Bug Fixes
- decode ScanParams.match with SafeEncoder, not the JVM default charset (#4661)
- fix ConcurrentModificationException in AuthXManager token renewal (#4601)
- Use Locale.ENGLISH for ASCII case conversion in ClientType and TSInfo (#4595) (#4593)
- Fix 'MultiDbClient' compatibility with client-side cache-enabled configuration (#4568)
- Fix FT.HYBRID COMBINE argument count to include YIELD_SCORE_AS tokens (#4575)
- Fix double initialization of pooled Connection in TrackingConnectionPool (#4547)
- Fix connection leak in MultiDbConnectionSupplier (#4546)
- fix: clear credential byte arrays in JedisSafeAuthenticator after use (#4629)
- Enforce hostname verification by default for TLS connections (#4495)
- fix: validate URI scheme in isValid() to reject non-Redis URIs (#4486)
🧰 Maintenance
- chore(deps-dev): bump org.apache.httpcomponents.client5:httpclient5-fluent from 5.6.2 to 5.6.3 (#4671)
- Fix sporadic doctest failures: stale keys and FT.AGGREGATE row-order assumptions (#4666)
- [Redis 8.10] Add integration test for search-on-timeout config (#4600)
- Speed up slow integration tests (#4659)
- Skip javadoc generation in integration test workflows (#4657)
- Document bounded pool waits for cluster pipelines (#4564)
- Evaluate JUnit test conditions before opening a Redis connection (#4654)
- test: Fix flaky touch assertions comparing OBJECT IDLETIME to exactly 0 (#4649)
- Bump org.apache.maven.plugins:maven-jar-plugin from 3.5.0 to 3.5.1 (#4648)
- test: Fix flaky MultiDbConnectionProviderTest caused by shared test key pollution (#4644)
- Add an AI skill and slash command for generating PR descriptions (#4587)
- Bump org.json:json from 20260522 to 20260719 (#4631)
- Add extend-commands-api agent skill (#4626)
- Add AGENTS.md coding-conventions guide for agents (#4585)
- Bump jackson.version from 2.22.0 to 2.22.1 (#4616)
- Fix flaky scanType test assuming SCAN page boundaries (#4615)
- Bump org.apache.httpcomponents.client5:httpclient5-fluent from 5.6.1 to 5.6.2 (#4590)
- Add spec for integration testing infrastructure (#4584)
- Verify that RADIX_TREE_KEYS and RADIX_TREE_NODES were parsed (#4573)
- Do not assert on internal field of XINFO command (#4571)
- Bump org.sonatype.central:central-publishing-maven-plugin from 0.10.0 to 0.11.0 (#4567)
- Bump org.codehaus.mojo:exec-maven-plugin from 3.1.1 to 3.6.3 (#4552)
- Bump org.jacoco:jacoco-maven-plugin from 0.8.14 to 0.8.15 (#4559)
- Bump jackson.version from 2.21.3 to 2.22.0 (#4560)
- Bump org.codehaus.mojo:build-helper-maven-plugin from 3.5.0 to 3.6.1 (#4553)
- Bump maven.surefire.version from 3.5.5 to 3.5.6 (#4554)
- Add JMH benchmarks (CAE-2930) (#4523)
- Add v7-to-v8 migration guide (#4541)
- Bump org.json:json from 20251224 to 20260522 (#4540)
- test: verify CSC NULL invalidation clears 10k cached entries (CAE-2930) (#4521)
- Improve CI pipeline stability (#4512)
- Bump com.google.code.gson:gson from 2.13.2 to 2.14.0 (#4507)
- Bump jackson.version from 2.21.2 to 2.21.3 (#4508)
- fix: stabilize flaky failover attempts test (#4482)
- test: fix flaky testPolicy_AllSuccess_StopsOnFirstFailure test (#4503)
- fix: test fail with Redis Search v8.7.90+ (#4502)
- Bump org.apache.httpcomponents.client5:httpclient5-fluent from 5.6 to 5.6.1 (#4492)
- Bump org.junit:junit-bom from 5.14.3 to 5.14.4 (#4501)
- test added for SslOptions.defaults() (#4498)
- Refactor Search tests (#4461)
- Refactor Bloom, JSON and RTS tests (#4462)
- Fix flaky
MultiDbClientfailback test (#4491) - Bump jackson.version from 2.21.1 to 2.21.2 (#4471)
- Extract unit tests into separate workflow (#4472)
- Update javadoc for health check probing delay (#4467)
- Bump snapshot version to 8.0.0 (#4464)
- Add mTLS tests (#4458)
Full Changelog: v7.4.0...v8.0.0
Contributors
We'd like to thank all the contributors who worked on this release!
@Ra9huvansh, @a-TODO-rov, @agarwalbharat, @arpitjain099, @atakavci, @dependabot[bot], @eddieran, @ggivo, @guyroyse, @insaf021, @juntae6942, @lh0156, @martin-nagy, @renechoi, @stellhub, @tishun, @uglide