redis/jedis
12 hours ago

This release includes only support for RESP3, it should be treated as an alpha. Please note response types change for those using RESP3 - meaning there breaking changes. Today this includes support for the following:

  • UnifiedJedis connections
  • Jedis connections
  • JedisPool
  • JedisCluster
  • RedisStack support (note: GRAPH.SLOWLOG is currently broken)

The following do not yet support RESP3:

  • MultiNodePipeline
  • ClusterPipeline
  • ShardedPipeline
  • PubSub
  • JedisSharding

This release introduces two different ways to enable a RESP3 redis connection, when your redis server supports RESP1.

  1. One can pass enable RESP3 with a UnifiedJedis connection via:
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.UnifiedJedis;

class DoResp {
    public static void main() {
       HostAndPort hnp = HostAndPort.from("localhost:6379");
       UnifiedJedis c =  UnifiedJedis(hnp, DefaultJedisClientConfig.builder().protocol(RedisProtocol.RESP3).build());
       c.set("foo", "value!");
       c.get("foo");
    }
}
  1. One can pass enable RESP3 with a Jedis connection via:
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.Jedis;

class DoResp {
    public static void main() {
       HostAndPort hnp = HostAndPort.from("localhost:6379");
       Jedis c =  Jedis(hnp, DefaultJedisClientConfig.builder().protocol(RedisProtocol.RESP3).build());
       c.set("foo", "value!");
       c.get("foo");
    }
}
29 days ago

Changes

🐛 Bug Fixes

  • Fix SELECT command in Pipeline (#3301)
  • Fix JedisPooled constructors missing poolConfig param (#3185)

🚀 New Features

  • Add simple JedisCluster constructor with HostAndPortMapper (#3302)
  • Easy PooledConnectionProvider with GenericObjectPoolConfig (#3183)

Contributors

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

@sazzad16

2023-01-24 20:01:02

Changes

🔥 Breaking Changes

  • Separate builder factory for each module (#3277)

🧪 Experimental Features

  • Support BF.CARD command (#3275)
  • Get Object from aggregation Row (#3253)

🚀 New Features

  • Separate interfaces for bit commands (#3279)
  • Added a suppressed exception in cluster initialization (#3274)

🐛 Bug Fixes

  • Fix JedisPooled constructors missing poolConfig param (#3185)

🧰 Maintenance

  • Upgrade Gson to 2.10.1 (#3272)
  • Update javadoc and config for maven-javadoc-plugin 3 (#3257)
  • Allow exclusion of org.json dependency (#3249)
  • Upgrade JUnixSocket Core to 2.6.1 (#3273)
  • Improved Transaction classes documentation (#3262)
  • Including startup instructions via redis-stack docker (#3263)
  • Bump maven-bundle-plugin from 4.2.1 to 5.1.8 (#3260)
  • Bump maven-jar-plugin from 3.0.2 to 3.3.0 (#3261)
  • Bump maven-compiler-plugin from 3.8.1 to 3.10.1 (#3259)
  • Update release-drafter-config.yml (#3247)
  • Bump maven-javadoc-plugin from 2.10.4 to 3.4.1 (#3234)
  • Bump nexus-staging-maven-plugin from 1.6.8 to 1.6.13 (#3233)
  • Add snapshot link in readme (#3229)
  • Removing LGTM (#3219)

Contributors

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

@agavrilov76, @chayim, @dependabot, @dependabot[bot], @jgaoIXL, @sazzad16, @yeikel and @zeekling

2022-12-13 18:56:58

Changes

🚀 New Features

  • Introduce JedisBroadcast to broadcast commands (#3194) (#3227)
  • Support pipelining from UnifiedJedis (#3221)
  • Support intermediate sync() calls in multi node pipelines (#3226)
  • Support MODULE LOADEX command (#3238)
  • Support LATENCY DOCTOR command (#3239)
  • Support CLIENT UNPAUSE command (#3237)
  • Support BITPOS command with BYTE|BIT modifier (#3236)
  • Address empty cluster slots list when discovering slots (#3195)
  • Refactor GenericObjectPool usages (#3186)
  • Easy PooledConnectionProvider with GenericObjectPoolConfig (#3183)

🧪 Experimental Features

  • Support FT._LIST command: ftList() method (#3197)
  • Support FT.PROFILE command (#3188)
  • Support FT.SPELLCHECK command (#3175)

🐛 Bug Fixes

  • Fix JedisPooled constructors missing poolConfig param (#3185)

🧰 Maintenance

  • Test: Intermediate sync() works in regular Pipeline (#3246)
  • Make org.json safely replace-able with android-json (#3242)
  • Allow exclusion of GSON dependency (#3223)
  • Test: Reduce flaky-ness of CLIENT PAUSE tests (#3243)
  • Add dependabot configuration (#3162)
  • Update test system setup (#3225)
  • Adding Javadocs to Jedis 'args' package (#3210)
  • Test: Debug cluster executor test fail (#3209)
  • Javadocs in Exception classes (#3204)
  • Test: Address memory optimizations in Redis List (#3208)
  • Refactor GenericObjectPool usages (#3186)
  • Test: Address DEFAULT_DIALECT search config change (#3184)
  • Test: Address TDIGEST.RANK changes (#3177)
  • Test: graph parser can handle inf, nan, etc (#3176)
  • Address JavaDoc warnings (#3174)
  • Release drafter formatting improvement: titles (#3173)
  • Fix RedisJSON doc for POJOs (#3200)

Contributors

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

@sazzad16, @agavrilov76, @jgaoIXL, @chayim, @yeikel and @zeekling

2022-10-20 17:15:26

Changes

🚀 New Features

  • Support passing ClusterConnectionProvider to JedisCluster (#3169)

🐛 Bug Fixes

  • Catch JedisException in loop instead of JedisConnectionException (#3166)

🧰 Maintenance

  • Deprecate TOPK.COUNT command (#3167)

Contributors

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

@ham1255 and @sazzad16

2022-10-09 16:35:55

Changes

4.3.0-m2 release notes 4.3.0-m1 release notes

Following are the changes only since the last milestone release. Please check the notes for milestone releases for all changes.

🧪 Experimental Features

  • Support TDIGEST.[BY][REV]RANK commands (#3158)
  • Support TDIGEST.ADD changes (#3156)

Note - changes to TDIGEST commands may be incompatible with the previous milestone releases.

🐛 Bug Fixes

  • Validate host and port of jedis connection (to sentinel master) (#3155)
  • Fix null property value parsing of search document (#3148)

🧰 Maintenance

  • Upgrade org.JSON to 20220320 (#3161)
  • Upgrade SLF4J to 1.7.36 (#3160)
  • Improve jedis.get doc (#3150)

Contributors

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

@chayim, @sazzad16, @shangjin92, @shkediy and @tianshuang

2022-09-20 14:29:39

Breaking Changes

  • Separate package for RedisBloom commands (#3112)
  • Add search restrictions while setting field attribute (#3124)

🧪 Experimental Features

  • Support TDIGEST commands (#3097)
  • Re-work on FT.SEARCH, FT.CREATE and FT.ALTER (#3138) (#3120)
  • Migrating QueryBuilders from JRediSearch to support searching (#3107)

🚀 New Features

  • Add SortingOrder argument for GeoRadius, GeoSearch (#3135)
  • Improved binary support for SET command with GET option (#3134)
  • Support remaining TS.ALTER params (#3116)
  • Adding support for custom a CommandExecutor with UnifiedJedis (#3104)
  • Make getBackoffSleepMillis in ClusterCommandExecutor nondeterministic (#3118)

🐛 Bug Fixes

  • Cleaning up broken connection from ClusterPipeline (#3143)
  • Fix NPE in Document#toString() (#3113)

🧰 Maintenance

  • Deprecate ASC and DESC keywords (#3136)

Contributors

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

@adiamzn, @angelo147, @chayim and @sazzad16

2022-08-07 23:43:50

🔥 Breaking Changes

  • Fix PENDING entries of xinfoStreamFull method (#2988)
  • Fix: return of CLUSTER REPLICAS is Array reply (#2990)
  • Reduce the verbosity of logs in PooledObjectFactory implementations (#3007)
  • Remove the unused Logger reference from HostAndPort class (#3008)

🚀 New Features

  • Optimize Entities capacity to avoid reallocation (#3090)
  • Pre-allocate the results size (#3089)
  • Support new TimeSeries arguments (#3082)
  • Extend support to all arguments of FT.SEARCH and FT.AGGREGATE commands (#3054)
  • Support Graph PROFILE, EXPLAIN, SLOWLOG, LIST and CONFIG commands (#3053)
  • Support JSON.RESP command (#3052)
  • Support JSON.OBJLEN and JSON.OBJKEYS commands (#3051)
  • Support RediSearch Dictionary commands (#3034)
  • Support FT.TAGVALS command (#3033)
  • Support RediSearch Suggestion commands (#3031, #3032)
  • Support [BF/CF].[SCANDUMP/LOADCHUNK] commands (#3029)
  • Support TS.INFO command (#3023)
  • Support TS.INCRBY and TS.DECRBY commands (#3022)
  • Support TS.MADD command (#3020)
  • Support CASESENSITIVE tag in RediSearch schema (#3000)
  • Chain AS to Schema object (#2950)
  • Support 'LOAD *' in search aggregation (#3001)
  • Support JSON.DEBUG MEMORY command (#3002)
  • Support JSON.NUMINCRBY command (#3004, #3024)
  • Support RedisJSON SET/GET as plain string(s) (#3005)
  • Introduce factory MINIMUM_ID and MAXIMUM_ID for StreamEntryID (#3006)
  • Read 'inf' in graph response (#3011)

🐛 Bug Fixes

  • Fix NPE when stream pending message is discarded (#3094)
  • Preserve order in responses of ZDIFF, ZINTER, ZUNION commands (#3085)

🧰 Maintenance

  • Refactor JedisPool and JedisPooled constructors (#3048)

Contributors

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

@sazzad16, @s-sathish, @gkorland and @VictoryWangCN

2022-06-02 17:13:58

🔥 Breaking Changes

  • Reduce the verbosity of logs in PooledObjectFactory implementations (#3007) Log levels in JedisFactory have been changed from WARN to DEBUG.
  • Fix: return of CLUSTER REPLICAS is Array reply (#2990)

🚀 New Features

  • Add ShardedJedisPoolConfig (#3009)
2022-04-29 19:21:55

🐛 Bug Fixes

  • Fix: return of CLUSTER REPLICAS is Array reply (#2990)
  • Fix PENDING entries of xinfoStreamFull method (#2988)

Contributors

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

@sazzad16, @martin-nagy and @buession