PackageTrack

Maven Central

redis.clients:jedis

8.0.1redis/jedis β†—

Jedis is a blazingly small and sane Redis java client.

Release timeline

145 releases since 2010
20102026

One column per quarter.

Releases

  1. 8.0.129 Aug 2026
    Release notes

    Jedis 8.0.1 is a maintenance release for the 8.0 line, fixing stale cluster topology after failover in JedisCluster.

    Changes

    πŸ› Bug Fixes

    • Refresh primaryNodesCache in JedisClusterInfoCache.discoverClusterSlots (#4692, backported in #4694)

    Contributors

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

    @insaf021

    Full Changelog: v8.0.0...v8.0.1

    Open source β†’
  2. 8.0.011 Aug 2026
    Release notes

    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 COUNT aggregator support for ZINTER / 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 MultiDbClient failback 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

    Open source β†’
  3. 8.0.0-beta128 May 2026pre-release
    Release notes

    Jedis 8.0.0-beta1 is the first pre-release of the upcoming 8.0 major line. It focused on completing the client class consolidation, modernizing protocol defaults, tightening security defaults, and adding support for new Redis 8.8 commands.

    • 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)
    • 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
    • TLS hostname verification enforced by default in DefaultJedisSocketFactory

    For step-by-step upgrade instructions, see the v7 β†’ v8 migration guide: https://redis.github.io/jedis/migration-guides/v7-to-v8/

    πŸ”₯ Breaking Changes

    • 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

    • 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 new COLLECT parameter for FT.AGGREGATE (#4534)
    • Add support for CONFIG GET and SET commands in UnifiedJedis (#4518)
    • Add out-of-band push notification handling (#4489)
    • Add COUNT aggregator support for ZINTER / 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

    • Enforce hostname verification by default for TLS connections (#4495)
    • fix: validate URI scheme in isValid() to reject non-Redis URIs (#4486)

    🧰 Maintenance

    • 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)
    • 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)
    • 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 MultiDbClient failback 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.5.0...v8.0.0-beta1

    Contributors

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

    @Ra9huvansh, @a-TODO-rov, @arpitjain099, @atakavci, @dependabot, @dependabot[bot], @eddieran, @ggivo, @martin-nagy, @stellhub, @tishun and @uglide

    Open source β†’
  4. 7.5.31 Jul 2026
    Release notes

    This is a maintenance release with fixes for FT.HYBRID queries and connection pool handshake overhead. Recommended for any deployment using FT.HYBRID with Combiner.as(...) or MultiDbClient.

    πŸ› Bug Fixes

    • Fixes FT.HYBRID COMBINE argument count omitting YIELD_SCORE_AS tokens, causing the command to be rejected when a combined-score alias is set via Combiner.as(...). Fix by @guyroyse in #4575, backported to 7.5.x in #4576.
    • Fixes double initialization of a pooled Connection in TrackingConnectionPool (used by MultiDbClient). #4547, backported to 7.5.x in dd42b3e.

    Full Changelog: v7.5.2...v7.5.3

    Open source β†’
  5. 7.5.229 May 2026
    Release notes

    This is a maintenance release focused on improving the stability of the Automatic Failover feature (MultiDbClient). Recommended for any deployment using MultiDbClient / multi-database failover.

    πŸ› Bug Fixes

    • Fixes a connection pool leak in experimental multi-database failover when ping() fails during acquisition. #4546

    🧰 Maintenance

    • CommandObjects refactoring Part 4: Backport deprecations to 7.5.x by @uglide in #4517
    Open source β†’
  6. 7.5.129 May 2026

    Nothing published for this version

  7. 7.5.027 Apr 2026
    Release notes

    Changes

    This release refines TLS behaviour to enhance security and begins consolidating TLS configuration on SslOptions. The introduction of hostname verification by default significantly improves the safety of TLS connections. For further details, see #4497.

    πŸ”§ Change in Behaviour

    • The legacy ssl(true) TLS path now enables hostname verification by default (#4497). It now rejects certificates whose SAN/CN does not match the target host, making TLS connections safer. The SslOptions-based configuration remains unchanged.
    • Deprecate legacy SSL configuration in favor of SslOptions (#4497).

    Contributors

    @ggivo

    Full Changelog: v7.4.1...v7.5.0

    Open source β†’
  8. 7.4.13 Apr 2026
    Release notes

    Jedis 7.4.1 (Patch Release)

    What's Changed

    *[ClusterPipeline] ExecutorService/thread is created and destroyed too frequently in ClusterPipeline by @ggivo in #4480

    Full Changelog: v7.4.0...v7.4.1

    Open source β†’
  9. 7.4.011 Mar 2026
    Release notes

    Overview

    The Jedis 7.4.0 release introduces enhancements to the Client-side geographic failover API, improves transaction support, and deprecates sendCommand() to improve compatibility with the Redis Cluster API.

    πŸš€ New Features

    πŸ› Bug Fixes

    • fix: Fix out-of-order responses in manual transactions with commands before MULTI (#4441)
    • Fix resp2 parsing of LibraryInfo (#4436)

    🧰 Maintenance

    • Client-side geographic failover:
      • Make MultiDbConfig.DatabaseConfig.Builder agnostic to call order (#4456)
      • Add documentation for "Dynamic Database Management" (#4457)
      • Add documentation for dynamic weight management#3678 (#4447)
    • Deprecate sendCommand() methods not compatible with OSS Cluster API (#4451)
    • Bump jackson.version from 2.21.0 to 2.21.1 (#4453)
    • Make integration tests compatible with RE (#4387)
    • maintenace: fix hotkeys info test for 8.6.1+ (#4443)
    • Bump maven.surefire.version from 3.5.4 to 3.5.5 (#4442)

    Contributors

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

    @a-TODO-rov, @atakavci, @dependabot, @dependabot[bot], @ggivo and @uglide

    Open source β†’
  10. 7.3.017 Feb 2026
    Release notes

    Changes

    Jedis 7.3.0 introduces support for Redis 8.6, including new commands and features for streams idempotent production, and HOTKEYS.

    πŸš€ New Features

    • [streams] Preserve field insertion order in stream entries (CAE-2341) (#4419)
    • [automatic failover] Add support for initialization policy for multidb connection (#4427)
    • feat: Add support for FT.HYBRID command (#4342) (#4405)
    • feat: Add support for HOTKEYS command (#4421) (#4417)(#4426)
    • feat: [TS] Add support for NaN values and new aggregations (#4415)
    • Add support for XADD idempotency (at-most-once guarantee) with new IDMPAUTO and IDMP arguments. (#4422) (#4413)
    • Add DELEX and DIGEST commands to pipeline interfaces (#4414)
    • Add configurable retry delay for Sentinel reconnection (#2864) (#4379)

    πŸ› Bug Fixes

    • RedisClient builder does not use credentials from JedisClientConfig (#4424)
    • Calculate maxTotalRetriesDuration from socketTimeout * maxAttempts if not set (#4396)

    🧰 Maintenance

    • Bump org.junit:junit-bom from 5.14.2 to 5.14.3 (#4433)
    • Refactor TLS tests (#4431)
    • Bump org.apache.httpcomponents.client5:httpclient5-fluent from 5.5.1 to 5.6 (#4380)
    • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.14.1 to 3.15.0 (#4418)
    • Add 8.6 pre to test matrix (#4410)
    • Bump jackson.version from 2.20.1 to 2.21.0 (#4408)
    • Add missing command deprecations (#4397)
    • Fix flaky cluster tests by accepting either retry limit error (maxAttempts or maxTotalRetriesDuration) (#4399)
    • Use endpoint instead of env variable in module tests (#4398)
    • Fix flaky AccessControlListCommandsTest (#4394)
    • Bump org.sonatype.central:central-publishing-maven-plugin from 0.9.0 to 0.10.0 (#4390)
    • Bump org.json:json from 20250517 to 20251224 (#4391)
    • Bump org.junit:junit-bom from 5.13.4 to 5.14.2 (#4392)
    • Remove hard-coded endpoints from the tests and rely solely on endpoints.json (#4385)
    • Fix ClusterTopologyRefreshIT (#4389)
    • Bump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.0 (#4383)
    • Bump org.apache.maven.plugins:maven-release-plugin from 3.3.0 to 3.3.1 (#4381)

    Contributors

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

    @Dgramada, @Peter-Sh, @a-TODO-rov, @atakavci, @dependabot, @dependabot[bot], @ggivo, @uglide and @viktoriya-kutsarova

    Open source β†’
  11. 7.2.116 Jan 2026

    Nothing published for this version

  12. 7.2.017 Dec 2025

    Nothing published for this version

  13. 7.1.020 Nov 2025

    Nothing published for this version

  14. 7.0.010 Oct 2025

    Nothing published for this version

  15. 6.2.028 Aug 2025

    Nothing published for this version

  16. 6.1.05 Aug 2025

    Nothing published for this version

  17. 6.0.030 Apr 2025

    Nothing published for this version

  18. 6.0.0-beta28 Apr 2025pre-release

    Nothing published for this version

  19. 6.0.0-beta124 Mar 2025pre-release

    Nothing published for this version

  20. 5.3.0-beta120 Dec 2024pre-release

    Nothing published for this version

  21. 5.2.027 Sept 2024

    Nothing published for this version

  22. 5.2.0-beta529 Aug 2024pre-release

    Nothing published for this version

  23. 5.2.0-beta410 Jun 2024pre-release
    Release notes

    dbc6e4f

    This commit was created on GitHub.com and signed with GitHub’s verified signature .

    GPG key ID: B5690EEEBB952194

    Verified Learn about vigilant mode .

    What's new

    Redis 7.4-RC1 support

    In this release, we added support for Redis 7.4-RC1 , including:

    • Support Hash field expiration ( #3826 )

    • Add last entry id for XREADs and support XREADs reply as map ( #3791 )

    • Add support for the NOVALUES option of HSCAN ( #3741 , #3746 )

    • Support the MAXAGE option for CLIENT KILL ( #3754 )

    Client-side caching

    This release supports server-assisted, client-side caching , and is currently beta grade.

    Client-side caching is available within UnifiedJedis, JedisPooled, JedisCluster, etc classes via implementation of ClientSideCache class, with only RESP3 protocol. It is recommended to use a ClientSideCache implementation with TTL (time-to-live). We have included two implementations based on Google Guava and Caffeine libraries.

    How to try Client-Side Caching

    • Install Jedis 5.2.0-beta4

    • Choose and install a caching library: Google Guava or Caffeine

    • Use the following code example to get started:

    import redis . clients . jedis .; import redis . clients . jedis . csc .; class CacheExample { public static void main () { HostAndPort node = HostAndPort . from ( "localhost:6379" ); JedisClientConfig clientConfig = DefaultJedisClientConfig . builder () . resp3 () // RESP3 protocol //.user("myuser") // Redis server username (optional) //.password("mypass") // Redis user's password (optional) . build (); ClientSideCache clientSideCache ; // Uncomment one of the following lines to use the corresponding cache backend // GuavaClientSideCache clientSideCache = GuavaClientSideCache.builder().maximumSize(10_000).ttl(100).build(); // CaffeineClientSideCache clientSideCache = CaffeineClientSideCache.builder().maximumSize(10_000).ttl(100).build(); UnifiedJedis client = new UnifiedJedis ( node , clientConfig , clientSideCache ); // JedisPooled client = new JedisPooled(node, clientConfig, clientSideCache); // JedisCluster client = new JedisCluster(Collections.singleton(node), clientConfig, clientSideCache); client . set ( "foo" , "bar" ); client . get ( "foo" ); client . get ( "foo" ); // cache hit client . del ( "foo" ); client . close (); } }

    It is highly recommended to use a ClientSideCache implementation with TTL. Both of our provided GuavaClientSideCache and CaffeineClientSideCache have TTL support and use a default value when not set. It is discouraged to use ttl(0) in these.

    It is also a good idea to keep the idle connections busy to get more and updated notifications. It can be done easily using pool config:

    GenericObjectPoolConfig < Connection > poolConfig = new ConnectionPoolConfig (); poolConfig . setTestWhileIdle ( true ); // ConnectionPoolConfig by default does this. // It is still shown here for better understanding.

    This pool config can be used as follows:

    JedisPooled client = new JedisPooled ( node , clientConfig , clientSideCache , poolConfig ); JedisCluster client = new JedisCluster ( Collections . singleton ( node ), clientConfig , clientSideCache , poolConfig );

    It is possible to limit or ignore commands and/or keys for client side caching. For example, if we want to ignore some keys based on their prefix, we can define a ClientSideCacheable:

    final String IGNORE_PREFIX = "PREFIX_TO_IGNORE" ; ClientSideCacheable isCacheable = new ClientSideCacheable () { @ Override public boolean isCacheable ( ProtocolCommand command , Object ... keys ) { for ( String key : ( String []) keys ) { // assuming we'll only execute methods with String keys if ( key . startsWith ( IGNORE_PREFIX )) { return false ; } } return true ; } };

    This ClientSideCacheable can be a parameter for ClientSideCache. In our provided implementations, it can be:

    GuavaClientSideCache clientSideCache = GuavaClientSideCache . builder (). cacheable ( isCacheable ). build (); CaffeineClientSideCache clientSideCache = CaffeineClientSideCache . builder (). cacheable ( isCacheable ). build ();

    It is also possible to create client-side caching enabled client object using URL/URI with proper query params. Supported params are:

    • cache_lib (caching library) - required; can be either guava or caffeine

    • cache_max_size (maximum no of commands) - optional

    • cache_ttl (time-to-live, in seconds) - optional

    For example:

    JedisPooled client = new JedisPooled ( "redis://myuser:mypass@localhost:6379/?cache_lib=guava&cache_max_size=10000&cache_ttl=100" );

    πŸ”₯ Breaking Changes

    • Address change in JSON.GET command without path ( #3858 )

    • Modify and fail-fast GeoSearchParam ( #3827 )

    • Support transaction from UnifiedJedis without calling multi first ( #3804 )

    • Reduce the log level of validateObject to WARN ( #3750 )

    πŸš€ Other notable improvements

    • Support [S]PUBLISH commands in pipelines and transactions ( #3859 )

    • PubSub handle array of messages for RESP2 ( #3811 )

    • Add Experimental, Internal and VisibleForTesting annotations ( #3790 )

    • Implement equals and hashcode in Params classes ( #3728 )

    • Support CLIENT TRACKINGINFO command ( #3751 )

    • Support issuing Latency commands ( #3729 )

    🧰 Maintenance

    • Bump org.json:json from 20231013 to 20240303 ( #3706 , #3752 )

    • Access Reducer attributes ( #3637 )

    • Add methods in CommandArguments and RawableFactory ( #3834 )

    • Deprecate unused Set builders ( #3857 )

    • Deprecate unused JSON.ARRAPPEND in CommandObjects ( #3798 )

    • GETSET command is deprecated since Redis 6.2.0 ( #3768 )

    • Resolve compile warnings ( #3810 )

    • Disable Redis Graph tests ( #3856 )

    • Introduce EndpointConfig and load endpoint settings from the endpoints.json file ( #3836 )

    • Address Gears test fail - Cleanup Function libraries ( #3840 )

    • Add more tests for the CommandObjects class ( #3809 )

    • Extensive unit tests for the CommandObjects class ( #3796 )

    • Add extensive tests for UnifiedJedis ( #3788 )

    • Pipelined tests for lists and sets, and API typo fix ( #3772 )

    • Extensive unit tests for PipeliningBase ( #3778 )

    • Streamline test execution ( #3760 )

    • Add pipelined tests for sorted sets ( #3771 )

    • Geo pipelined tests ( #3767 )

    • Reenable clustering tests ( #3764 )

    • Add tests for Stream pipelined commands ( #3763 )

    • Add Hashes pipeline commands unit tests ( #3288 )

    • Add unit tests for pipelining - migrate and db commands ( #3759 )

    • Address RediSearch profile change ( #3636 )

    • Running doctests also on emb-examples ( #3693 )

    • Run integration workflow for 5.2.0 branch ( #3681 )

    • Spellcheck as part of CI ( #3492 )

    • Adding stale issues workflow ( #3528 )

    • Creating CODEOWNERS for documentation ( #3570 )

    • Unifying GitHub tokens ( #3650 )

    • Replace deprecated set-output command with environment file ( #3622 )

    • Fixing GPG key usage ( #3670 )

    • Bump org.apache.maven.plugins:maven-jar-plugin from 3.3.0 to 3.4.1 ( #3819 , #3822 )

    • Bump org.apache.maven.plugins:maven-gpg-plugin from 3.2.2 to 3.2.4 ( #3775 , #3785 , #3794 , #3818 , #3823 )

    • Bump org.jacoco:jacoco-maven-plugin from 0.8.5 to 0.8.12 ( #3653 , #3805 )

    • Bump org.apache.maven.plugins:maven-source-plugin from 3.3.0 to 3.3.1 ( #3807 )

    • Bump org.apache.maven.plugins:maven-compiler-plugin from 3.11.0 to 3.13.0 ( #3665 , #3786 )

    • Bump org.apache.maven.plugins:maven-surefire-plugin from 3.2.2 to 3.2.5 ( #3656 , #3688 )

    • Bump org.apache.maven.plugins:maven-javadoc-plugin from 3.6.2 to 3.6.3 ( #3639 )

    • Bump jackson.version (com.fasterxml.jackson.core:jackson-databind and com.fasterxml.jackson.datatype:jackson-datatype-jsr310) from 2.14.2 to 2.17.1 ( #3666 , #3762 , #3776 , #3833 )

    • Bump com.kohlschutter.junixsocket:junixsocket-core from 2.8.1 to 2.9.1 ( #3647 , #3724 , #3806 )

    Contributors

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

    @Lcarrot , @cemasma , @chayim , @gerzse , @sazzad16 and @uglide

    Contributors

    chayim, uglide, and 4 other contributors

    Open source β†’
  24. 5.2.0-beta36 Jun 2024pre-release

    Nothing published for this version

  25. 5.2.0-beta27 May 2024pre-release

    Nothing published for this version

  26. 5.2.0-beta111 Mar 2024pre-release

    Nothing published for this version

  27. 5.2.0-alpha326 Feb 2024pre-release

    Nothing published for this version

  28. 5.2.0-alpha231 Dec 2023pre-release

    Nothing published for this version

  29. 5.1.522 Aug 2024

    Nothing published for this version

  30. 5.1.429 Jul 2024

    Nothing published for this version

  31. 5.1.321 May 2024

    Nothing published for this version

  32. 5.1.26 Mar 2024

    Nothing published for this version

  33. 5.1.126 Feb 2024

    Nothing published for this version

  34. 5.1.021 Nov 2023

    Nothing published for this version

  35. 5.0.219 Oct 2023

    Nothing published for this version

  36. 5.0.126 Sept 2023

    Nothing published for this version

  37. 5.0.03 Sept 2023

    Nothing published for this version

  38. 5.0.0-beta214 Jun 2023pre-release

    Nothing published for this version

  39. 5.0.0-beta121 May 2023pre-release

    Nothing published for this version

  40. 5.0.0-alpha28 May 2023pre-release

    Nothing published for this version

  41. 5.0.0-alpha128 Mar 2023pre-release

    Nothing published for this version

  42. 4.4.84 Apr 2024

    Nothing published for this version

  43. 4.4.726 Feb 2024

    Nothing published for this version

  44. 4.4.619 Oct 2023

    Nothing published for this version

  45. 4.4.526 Sept 2023

    Nothing published for this version

  46. 4.4.43 Sept 2023

    Nothing published for this version

  47. 4.4.314 Jun 2023

    Nothing published for this version

  48. 4.4.27 Jun 2023

    Nothing published for this version

  49. 4.4.117 May 2023

    Nothing published for this version

  50. 4.4.08 May 2023

    Nothing published for this version

  51. 4.4.0-rc127 Apr 2023pre-release

    Nothing published for this version

  52. 4.4.0-m21 Feb 2023pre-release

    Nothing published for this version

  53. 4.4.0-m113 Dec 2022pre-release

    Nothing published for this version

  54. 4.3.221 Mar 2023

    Nothing published for this version

  55. 4.3.120 Oct 2022

    Nothing published for this version

  56. 4.3.09 Oct 2022

    Nothing published for this version

  57. 4.3.0-m221 Sept 2022pre-release

    Nothing published for this version

  58. 4.3.0-m110 Aug 2022pre-release

    Nothing published for this version

  59. 4.2.38 May 2022

    Nothing published for this version

  60. 4.2.212 Apr 2022

    Nothing published for this version