Jedis is a blazingly small and sane Redis java client.
Last release today
29 Aug 2026
Ships on a steady schedule
a new release about every 4 weeks
Rarely documented
notes for 8 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
16 years old
145 releases Β· first in 2010
Release timeline
145 releases since 2010One column per quarter.
Releases
- 8.0.129 Aug 2026
Release notes
Open source β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!
Full Changelog: v8.0.0...v8.0.1
- 8.0.011 Aug 2026
Release notes
Open source β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
- 8.0.0-beta128 May 2026pre-release
Release notes
Open source β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
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
- 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
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.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
- 7.5.31 Jul 2026
Release notes
Open source β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(...)orMultiDbClient.π Bug Fixes
- Fixes
FT.HYBRIDCOMBINEargument count omittingYIELD_SCORE_AStokens, causing the command to be rejected when a combined-score alias is set viaCombiner.as(...). Fix by @guyroyse in #4575, backported to7.5.xin #4576. - Fixes double initialization of a pooled
ConnectioninTrackingConnectionPool(used byMultiDbClient). #4547, backported to7.5.xin dd42b3e.
Full Changelog: v7.5.2...v7.5.3
- Fixes
- 7.5.229 May 2026
Release notes
Open source βThis is a maintenance release focused on improving the stability of the Automatic Failover feature (
MultiDbClient). Recommended for any deployment usingMultiDbClient/ multi-database failover.π Bug Fixes
- Fixes a connection pool leak in experimental multi-database failover when ping() fails during acquisition. #4546
π§° Maintenance
- 7.5.129 May 2026
Nothing published for this version
- 7.5.027 Apr 2026
Release notes
Open source β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. TheSslOptions-based configuration remains unchanged. - Deprecate legacy SSL configuration in favor of
SslOptions(#4497).
Contributors
Full Changelog: v7.4.1...v7.5.0
- The legacy
- 7.4.13 Apr 2026
Release notes
Open source β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
- 7.4.011 Mar 2026
Release notes
Open source β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
- Add long index support to ZRangeParams (#4445) (#4446)
- Client-side geographic failover: Add Runtime Weight Management for MultiDbClient Endpoints (#4435)
π 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:
- 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
- 7.3.017 Feb 2026
Release notes
Open source β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
- 7.2.116 Jan 2026
Nothing published for this version
- 7.2.017 Dec 2025
Nothing published for this version
- 7.1.020 Nov 2025
Nothing published for this version
- 7.0.010 Oct 2025
Nothing published for this version
- 6.2.028 Aug 2025
Nothing published for this version
- 6.1.05 Aug 2025
Nothing published for this version
- 6.0.030 Apr 2025
Nothing published for this version
- 6.0.0-beta28 Apr 2025pre-release
Nothing published for this version
- 6.0.0-beta124 Mar 2025pre-release
Nothing published for this version
- 5.3.0-beta120 Dec 2024pre-release
Nothing published for this version
- 5.2.027 Sept 2024
Nothing published for this version
- 5.2.0-beta529 Aug 2024pre-release
Nothing published for this version
- 5.2.0-beta410 Jun 2024pre-release
Release notes
Open source β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
-
- 5.2.0-beta36 Jun 2024pre-release
Nothing published for this version
- 5.2.0-beta27 May 2024pre-release
Nothing published for this version
- 5.2.0-beta111 Mar 2024pre-release
Nothing published for this version
- 5.2.0-alpha326 Feb 2024pre-release
Nothing published for this version
- 5.2.0-alpha231 Dec 2023pre-release
Nothing published for this version
- 5.1.522 Aug 2024
Nothing published for this version
- 5.1.429 Jul 2024
Nothing published for this version
- 5.1.321 May 2024
Nothing published for this version
- 5.1.26 Mar 2024
Nothing published for this version
- 5.1.126 Feb 2024
Nothing published for this version
- 5.1.021 Nov 2023
Nothing published for this version
- 5.0.219 Oct 2023
Nothing published for this version
- 5.0.126 Sept 2023
Nothing published for this version
- 5.0.03 Sept 2023
Nothing published for this version
- 5.0.0-beta214 Jun 2023pre-release
Nothing published for this version
- 5.0.0-beta121 May 2023pre-release
Nothing published for this version
- 5.0.0-alpha28 May 2023pre-release
Nothing published for this version
- 5.0.0-alpha128 Mar 2023pre-release
Nothing published for this version
- 4.4.84 Apr 2024
Nothing published for this version
- 4.4.726 Feb 2024
Nothing published for this version
- 4.4.619 Oct 2023
Nothing published for this version
- 4.4.526 Sept 2023
Nothing published for this version
- 4.4.43 Sept 2023
Nothing published for this version
- 4.4.314 Jun 2023
Nothing published for this version
- 4.4.27 Jun 2023
Nothing published for this version
- 4.4.117 May 2023
Nothing published for this version
- 4.4.08 May 2023
Nothing published for this version
- 4.4.0-rc127 Apr 2023pre-release
Nothing published for this version
- 4.4.0-m21 Feb 2023pre-release
Nothing published for this version
- 4.4.0-m113 Dec 2022pre-release
Nothing published for this version
- 4.3.221 Mar 2023
Nothing published for this version
- 4.3.120 Oct 2022
Nothing published for this version
- 4.3.09 Oct 2022
Nothing published for this version
- 4.3.0-m221 Sept 2022pre-release
Nothing published for this version
- 4.3.0-m110 Aug 2022pre-release
Nothing published for this version
- 4.2.38 May 2022
Nothing published for this version
- 4.2.212 Apr 2022
Nothing published for this version