📗 Links
⭐ New Features
- GH-3099: Parse Redis INFO output without using Properties.load() #3382
- Escape backslashes in source string before loading properties #3172
- Redis INFO output is parsed as (Java) properties, although it is not the same format #3099
🐞 Bug Fixes
- Fix queue head operations of reversed
RedisListview #3459 RedisList.reversed()view polls and peeks at the wrong end and ignores thepolltimeout #3458expiresendsPEXPIREon Jedis for TTLs beyond the integer range #3444setExrejects valid TTLs on Jedis #3443- Check for integer overflow in sort LIMIT #3440
- JedisListCommands.lPop and JedisListCommands.rPop downcast to int unchecked #3438
- JedisKeyCommands.restore doesn't check range on ttlInMillis if replace = true #3437
- ExpiryChangeState.of and StreamEntryDeletionResult.fromCode overflow on longs #3436
- getExpirationDuration and getExpirationInstant return wrong result if asked for milliseconds #3432
- Fetch hash field TTLs in seconds in
DefaultHashOperations#3430 - Compare raw TTL values as long in
Expirations.TimeToLive#3428 DefaultHashOperations.getTimeToLiveconverts hash-field TTL values twice for non-secondTimeUnits #3427Expirations.TimeToLive.oftruncates the raw TTL toint, misclassifying large TTL values #3425- Jedis fails on TTL parameters exceeding integer range #3386
📔 Documentation
🔨 Dependency Upgrades
- Upgrade to Maven Wrapper 3.10.0 #3454
❤️ Contributors
We'd like to thank all the contributors who worked on this release!