Skip to content

Commit ab7dd20

Browse files
committed
Merge remote-tracking branch 'upstream/master'
2 parents 53d79d7 + c2634a4 commit ab7dd20

27 files changed

+451
-263
lines changed

.github/workflows/integration.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,12 @@ jobs:
5454
env:
5555
JVM_OPTS: -Xmx3200m
5656
TERM: dumb
57+
- name: sleep 10s
58+
run: sleep 10s
5759
- name: Make - start
58-
run: make start
60+
run: |
61+
make start
62+
sleep 2s
5963
- name: Docker - mod or stack
6064
run: docker run -p 52567:6379 -d redis/redis-stack-server:edge
6165
- name: Test commands - default protocol

docs/jedis5-breaking.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,18 @@
1414
- `blpop(double timeout, byte[]... keys)`
1515
- `brpop(double timeout, byte[]... keys)`
1616

17+
- `zdiff(String... keys)` method now returns `List<String>` (instead of `Set<String>`).
18+
- `zdiff(byte[]... keys)` method now returns `List<byte[]>` (instead of `Set<byte[]>`).
19+
- Both `zdiffWithScores(String... keys)` and `zdiffWithScores(byte[]... keys)` methods now return `List<Tuple>` (instead of `Set<Tuple>`).
20+
21+
- `zinter(ZParams params, String... keys)` method now returns `List<String>` (instead of `Set<String>`).
22+
- `zinter(ZParams params, byte[]... keys)` method now returns `List<byte[]>` (instead of `Set<byte[]>`).
23+
- Both `zinterWithScores(ZParams params, String... keys)` and `zinterWithScores(ZParams params, byte[]... keys)` methods now return `List<Tuple>` (instead of `Set<Tuple>`).
24+
25+
- `zunion(ZParams params, String... keys)` method now returns `List<String>` (instead of `Set<String>`).
26+
- `zunion(ZParams params, byte[]... keys)` method now returns `List<byte[]>` (instead of `Set<byte[]>`).
27+
- Both `zunionWithScores(ZParams params, String... keys)` and `zunionWithScores(ZParams params, byte[]... keys)` methods now return `List<Tuple>` (instead of `Set<Tuple>`).
28+
1729
- `getAgeSeconds()` in `AccessControlLogEntry` now returns `Double` instead of `String`.
1830

1931
- `graphSlowlog(String graphName)` now returns `List<List<Object>>` (instead of `List<List<String>>`).
@@ -30,6 +42,7 @@
3042
- `BYTE_ARRAY` (use `BINARY`)
3143
- `BYTE_ARRAY_LIST` (use `BINARY_LIST`)
3244
- `BINARY_MAP_FROM_PAIRS`
45+
- `STRING_ORDERED_SET`
3346

3447
- `Queable` class is removed.
3548

@@ -44,6 +57,9 @@
4457

4558
- `getParams()` method is removed from `SortingParams` class.
4659

60+
- All variants of `blmpop` and `bzmpop` methods now take `double timeout` parameter instead of `long timeout` parameter.
61+
This is breaking ONLY IF you are using `Long` for timeout.
62+
4763
<!--- Deprecated in Jedis 4 --->
4864

4965
- `quit()` method has been removed from `Connection` and `ServerCommands` interface and implementations.

src/main/java/redis/clients/jedis/BuilderFactory.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -323,21 +323,6 @@ public String toString() {
323323
}
324324
};
325325

326-
public static final Builder<Set<String>> STRING_ORDERED_SET = new Builder<Set<String>>() {
327-
@Override
328-
@SuppressWarnings("unchecked")
329-
public Set<String> build(Object data) {
330-
if (null == data) return null;
331-
return ((List<Object>) data).stream().map(STRING::build)
332-
.collect(Collectors.toCollection(LinkedHashSet::new));
333-
}
334-
335-
@Override
336-
public String toString() {
337-
return "Set<String>";
338-
}
339-
};
340-
341326
public static final Builder<Map<String, String>> STRING_MAP = new Builder<Map<String, String>>() {
342327
@Override
343328
@SuppressWarnings("unchecked")

src/main/java/redis/clients/jedis/CommandObjects.java

Lines changed: 52 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -940,12 +940,12 @@ public final CommandObject<KeyValue<String, List<String>>> lmpop(ListDirection d
940940
.add(direction).add(COUNT).add(count), BuilderFactory.KEYED_STRING_LIST);
941941
}
942942

943-
public final CommandObject<KeyValue<String, List<String>>> blmpop(long timeout, ListDirection direction, String... keys) {
943+
public final CommandObject<KeyValue<String, List<String>>> blmpop(double timeout, ListDirection direction, String... keys) {
944944
return new CommandObject<>(commandArguments(BLMPOP).blocking().add(timeout)
945945
.add(keys.length).keys((Object[]) keys).add(direction), BuilderFactory.KEYED_STRING_LIST);
946946
}
947947

948-
public final CommandObject<KeyValue<String, List<String>>> blmpop(long timeout, ListDirection direction, int count, String... keys) {
948+
public final CommandObject<KeyValue<String, List<String>>> blmpop(double timeout, ListDirection direction, int count, String... keys) {
949949
return new CommandObject<>(commandArguments(BLMPOP).blocking().add(timeout)
950950
.add(keys.length).keys((Object[]) keys).add(direction).add(COUNT).add(count),
951951
BuilderFactory.KEYED_STRING_LIST);
@@ -961,12 +961,12 @@ public final CommandObject<KeyValue<byte[], List<byte[]>>> lmpop(ListDirection d
961961
.add(direction).add(COUNT).add(count), BuilderFactory.KEYED_BINARY_LIST);
962962
}
963963

964-
public final CommandObject<KeyValue<byte[], List<byte[]>>> blmpop(long timeout, ListDirection direction, byte[]... keys) {
964+
public final CommandObject<KeyValue<byte[], List<byte[]>>> blmpop(double timeout, ListDirection direction, byte[]... keys) {
965965
return new CommandObject<>(commandArguments(BLMPOP).blocking().add(timeout)
966966
.add(keys.length).keys((Object[]) keys).add(direction), BuilderFactory.KEYED_BINARY_LIST);
967967
}
968968

969-
public final CommandObject<KeyValue<byte[], List<byte[]>>> blmpop(long timeout, ListDirection direction, int count, byte[]... keys) {
969+
public final CommandObject<KeyValue<byte[], List<byte[]>>> blmpop(double timeout, ListDirection direction, int count, byte[]... keys) {
970970
return new CommandObject<>(commandArguments(BLMPOP).blocking().add(timeout)
971971
.add(keys.length).keys((Object[]) keys).add(direction).add(COUNT).add(count),
972972
BuilderFactory.KEYED_BINARY_LIST);
@@ -1804,51 +1804,53 @@ public final CommandObject<ScanResult<Tuple>> zscan(byte[] key, byte[] cursor, S
18041804
return new CommandObject<>(commandArguments(ZSCAN).key(key).add(cursor).addParams(params), BuilderFactory.ZSCAN_RESPONSE);
18051805
}
18061806

1807-
public final CommandObject<Set<String>> zdiff(String... keys) {
1808-
return new CommandObject<>(commandArguments(ZDIFF).add(keys.length).keys((Object[]) keys), BuilderFactory.STRING_ORDERED_SET);
1807+
public final CommandObject<List<String>> zdiff(String... keys) {
1808+
return new CommandObject<>(commandArguments(ZDIFF).add(keys.length).keys((Object[]) keys),
1809+
BuilderFactory.STRING_LIST);
18091810
}
18101811

1811-
public final CommandObject<Set<Tuple>> zdiffWithScores(String... keys) {
1812+
public final CommandObject<List<Tuple>> zdiffWithScores(String... keys) {
18121813
return new CommandObject<>(commandArguments(ZDIFF).add(keys.length).keys((Object[]) keys)
1813-
.add(WITHSCORES), getTupleSetBuilder());
1814+
.add(WITHSCORES), getTupleListBuilder());
18141815
}
18151816

18161817
public final CommandObject<Long> zdiffStore(String dstkey, String... keys) {
1817-
return new CommandObject<>(commandArguments(ZDIFFSTORE).key(dstkey).add(keys.length).keys((Object[]) keys), BuilderFactory.LONG);
1818+
return new CommandObject<>(commandArguments(ZDIFFSTORE).key(dstkey)
1819+
.add(keys.length).keys((Object[]) keys), BuilderFactory.LONG);
18181820
}
18191821

1820-
public final CommandObject<Set<byte[]>> zdiff(byte[]... keys) {
1821-
return new CommandObject<>(commandArguments(ZDIFF).add(keys.length).keys((Object[]) keys), BuilderFactory.BINARY_SET);
1822+
public final CommandObject<List<byte[]>> zdiff(byte[]... keys) {
1823+
return new CommandObject<>(commandArguments(ZDIFF).add(keys.length).keys((Object[]) keys), BuilderFactory.BINARY_LIST);
18221824
}
18231825

1824-
public final CommandObject<Set<Tuple>> zdiffWithScores(byte[]... keys) {
1826+
public final CommandObject<List<Tuple>> zdiffWithScores(byte[]... keys) {
18251827
return new CommandObject<>(commandArguments(ZDIFF).add(keys.length).keys((Object[]) keys)
1826-
.add(WITHSCORES), getTupleSetBuilder());
1828+
.add(WITHSCORES), getTupleListBuilder());
18271829
}
18281830

18291831
public final CommandObject<Long> zdiffStore(byte[] dstkey, byte[]... keys) {
18301832
return new CommandObject<>(commandArguments(ZDIFFSTORE).key(dstkey)
18311833
.add(keys.length).keys((Object[]) keys), BuilderFactory.LONG);
18321834
}
18331835

1834-
public final CommandObject<Long> zinterstore(String dstkey, String... sets) {
1835-
return new CommandObject<>(commandArguments(ZINTERSTORE).key(dstkey)
1836-
.add(sets.length).keys((Object[]) sets), BuilderFactory.LONG);
1836+
public final CommandObject<List<String>> zinter(ZParams params, String... keys) {
1837+
return new CommandObject<>(commandArguments(ZINTER).add(keys.length).keys((Object[]) keys)
1838+
.addParams(params), BuilderFactory.STRING_LIST);
18371839
}
18381840

1839-
public final CommandObject<Long> zinterstore(String dstkey, ZParams params, String... sets) {
1840-
return new CommandObject<>(commandArguments(ZINTERSTORE).key(dstkey)
1841-
.add(sets.length).keys((Object[]) sets).addParams(params), BuilderFactory.LONG);
1841+
public final CommandObject<List<Tuple>> zinterWithScores(ZParams params, String... keys) {
1842+
return new CommandObject<>(commandArguments(ZINTER).add(keys.length).keys((Object[]) keys)
1843+
.addParams(params).add(WITHSCORES), getTupleListBuilder());
18421844
}
18431845

1844-
public final CommandObject<Set<String>> zinter(ZParams params, String... keys) {
1845-
return new CommandObject<>(commandArguments(ZINTER).add(keys.length).keys((Object[]) keys)
1846-
.addParams(params), BuilderFactory.STRING_ORDERED_SET);
1846+
public final CommandObject<Long> zinterstore(String dstkey, String... keys) {
1847+
return new CommandObject<>(commandArguments(ZINTERSTORE).key(dstkey)
1848+
.add(keys.length).keys((Object[]) keys), BuilderFactory.LONG);
18471849
}
18481850

1849-
public final CommandObject<Set<Tuple>> zinterWithScores(ZParams params, String... keys) {
1850-
return new CommandObject<>(commandArguments(ZINTER).add(keys.length).keys((Object[]) keys)
1851-
.addParams(params).add(WITHSCORES), getTupleSetBuilder());
1851+
public final CommandObject<Long> zinterstore(String dstkey, ZParams params, String... keys) {
1852+
return new CommandObject<>(commandArguments(ZINTERSTORE).key(dstkey)
1853+
.add(keys.length).keys((Object[]) keys).addParams(params), BuilderFactory.LONG);
18521854
}
18531855

18541856
public final CommandObject<Long> zintercard(String... keys) {
@@ -1881,14 +1883,14 @@ public final CommandObject<Long> zintercard(long limit, byte[]... keys) {
18811883
.keys((Object[]) keys).add(LIMIT).add(limit), BuilderFactory.LONG);
18821884
}
18831885

1884-
public final CommandObject<Set<byte[]>> zinter(ZParams params, byte[]... keys) {
1886+
public final CommandObject<List<byte[]>> zinter(ZParams params, byte[]... keys) {
18851887
return new CommandObject<>(commandArguments(ZINTER).add(keys.length).keys((Object[]) keys)
1886-
.addParams(params), BuilderFactory.BINARY_SET);
1888+
.addParams(params), BuilderFactory.BINARY_LIST);
18871889
}
18881890

1889-
public final CommandObject<Set<Tuple>> zinterWithScores(ZParams params, byte[]... keys) {
1891+
public final CommandObject<List<Tuple>> zinterWithScores(ZParams params, byte[]... keys) {
18901892
return new CommandObject<>(commandArguments(ZINTER).add(keys.length).keys((Object[]) keys)
1891-
.addParams(params).add(WITHSCORES), getTupleSetBuilder());
1893+
.addParams(params).add(WITHSCORES), getTupleListBuilder());
18921894
}
18931895

18941896
public final CommandObject<Long> zunionstore(String dstkey, String... sets) {
@@ -1901,14 +1903,14 @@ public final CommandObject<Long> zunionstore(String dstkey, ZParams params, Stri
19011903
.add(sets.length).keys((Object[]) sets).addParams(params), BuilderFactory.LONG);
19021904
}
19031905

1904-
public final CommandObject<Set<String>> zunion(ZParams params, String... keys) {
1906+
public final CommandObject<List<String>> zunion(ZParams params, String... keys) {
19051907
return new CommandObject<>(commandArguments(ZUNION).add(keys.length).keys((Object[]) keys)
1906-
.addParams(params), BuilderFactory.STRING_ORDERED_SET);
1908+
.addParams(params), BuilderFactory.STRING_LIST);
19071909
}
19081910

1909-
public final CommandObject<Set<Tuple>> zunionWithScores(ZParams params, String... keys) {
1911+
public final CommandObject<List<Tuple>> zunionWithScores(ZParams params, String... keys) {
19101912
return new CommandObject<>(commandArguments(ZUNION).add(keys.length).keys((Object[]) keys)
1911-
.addParams(params).add(WITHSCORES), getTupleSetBuilder());
1913+
.addParams(params).add(WITHSCORES), getTupleListBuilder());
19121914
}
19131915

19141916
public final CommandObject<Long> zunionstore(byte[] dstkey, byte[]... sets) {
@@ -1921,14 +1923,14 @@ public final CommandObject<Long> zunionstore(byte[] dstkey, ZParams params, byte
19211923
.add(sets.length).keys((Object[]) sets).addParams(params), BuilderFactory.LONG);
19221924
}
19231925

1924-
public final CommandObject<Set<byte[]>> zunion(ZParams params, byte[]... keys) {
1926+
public final CommandObject<List<byte[]>> zunion(ZParams params, byte[]... keys) {
19251927
return new CommandObject<>(commandArguments(ZUNION).add(keys.length).keys((Object[]) keys)
1926-
.addParams(params), BuilderFactory.BINARY_SET);
1928+
.addParams(params), BuilderFactory.BINARY_LIST);
19271929
}
19281930

1929-
public final CommandObject<Set<Tuple>> zunionWithScores(ZParams params, byte[]... keys) {
1931+
public final CommandObject<List<Tuple>> zunionWithScores(ZParams params, byte[]... keys) {
19301932
return new CommandObject<>(commandArguments(ZUNION).add(keys.length).keys((Object[]) keys)
1931-
.addParams(params).add(WITHSCORES), getTupleSetBuilder());
1933+
.addParams(params).add(WITHSCORES), getTupleListBuilder());
19321934
}
19331935

19341936
public final CommandObject<KeyValue<String, List<Tuple>>> zmpop(SortedSetOption option, String... keys) {
@@ -1941,12 +1943,12 @@ public final CommandObject<KeyValue<String, List<Tuple>>> zmpop(SortedSetOption
19411943
.add(option).add(COUNT).add(count), BuilderFactory.KEYED_TUPLE_LIST);
19421944
}
19431945

1944-
public final CommandObject<KeyValue<String, List<Tuple>>> bzmpop(long timeout, SortedSetOption option, String... keys) {
1946+
public final CommandObject<KeyValue<String, List<Tuple>>> bzmpop(double timeout, SortedSetOption option, String... keys) {
19451947
return new CommandObject<>(commandArguments(BZMPOP).blocking().add(timeout).add(keys.length)
19461948
.keys((Object[]) keys).add(option), BuilderFactory.KEYED_TUPLE_LIST);
19471949
}
19481950

1949-
public final CommandObject<KeyValue<String, List<Tuple>>> bzmpop(long timeout, SortedSetOption option, int count, String... keys) {
1951+
public final CommandObject<KeyValue<String, List<Tuple>>> bzmpop(double timeout, SortedSetOption option, int count, String... keys) {
19501952
return new CommandObject<>(commandArguments(BZMPOP).blocking().add(timeout).add(keys.length)
19511953
.keys((Object[]) keys).add(option).add(COUNT).add(count), BuilderFactory.KEYED_TUPLE_LIST);
19521954
}
@@ -1961,12 +1963,12 @@ public final CommandObject<KeyValue<byte[], List<Tuple>>> zmpop(SortedSetOption
19611963
.add(option).add(COUNT).add(count), BuilderFactory.BINARY_KEYED_TUPLE_LIST);
19621964
}
19631965

1964-
public final CommandObject<KeyValue<byte[], List<Tuple>>> bzmpop(long timeout, SortedSetOption option, byte[]... keys) {
1966+
public final CommandObject<KeyValue<byte[], List<Tuple>>> bzmpop(double timeout, SortedSetOption option, byte[]... keys) {
19651967
return new CommandObject<>(commandArguments(BZMPOP).blocking().add(timeout).add(keys.length)
19661968
.keys((Object[]) keys).add(option), BuilderFactory.BINARY_KEYED_TUPLE_LIST);
19671969
}
19681970

1969-
public final CommandObject<KeyValue<byte[], List<Tuple>>> bzmpop(long timeout, SortedSetOption option, int count, byte[]... keys) {
1971+
public final CommandObject<KeyValue<byte[], List<Tuple>>> bzmpop(double timeout, SortedSetOption option, int count, byte[]... keys) {
19701972
return new CommandObject<>(commandArguments(BZMPOP).blocking().add(timeout).add(keys.length)
19711973
.keys((Object[]) keys).add(option).add(COUNT).add(count), BuilderFactory.BINARY_KEYED_TUPLE_LIST);
19721974
}
@@ -3401,6 +3403,15 @@ public final CommandObject<String> jsonSet(String key, Path path, Object pojo, J
34013403
getJsonObjectMapper().toJson(pojo)).addParams(params), BuilderFactory.STRING);
34023404
}
34033405

3406+
public final CommandObject<String> jsonMerge(String key, Path2 path, Object object) {
3407+
return new CommandObject<>(commandArguments(JsonCommand.MERGE).key(key).add(path).add(object), BuilderFactory.STRING);
3408+
}
3409+
3410+
public final CommandObject<String> jsonMerge(String key, Path path, Object pojo) {
3411+
return new CommandObject<>(commandArguments(JsonCommand.MERGE).key(key).add(path).add(
3412+
getJsonObjectMapper().toJson(pojo)), BuilderFactory.STRING);
3413+
}
3414+
34043415
public final CommandObject<Object> jsonGet(String key) {
34053416
return new CommandObject<>(commandArguments(JsonCommand.GET).key(key), new JsonObjectBuilder<>(Object.class));
34063417
}

0 commit comments

Comments
 (0)