@@ -407,6 +407,13 @@ public byte[] getDel(final byte[] key) {
407407 return client .getBinaryBulkReply ();
408408 }
409409
410+ @ Override
411+ public byte [] getEx (final byte [] key , final GetExParams params ) {
412+ checkIsInMultiOrPipeline ();
413+ client .getEx (key , params );
414+ return client .getBinaryBulkReply ();
415+ }
416+
410417 /**
411418 * Ask the server to silently close the connection.
412419 */
@@ -1834,14 +1841,14 @@ public Long sunionstore(final byte[] dstkey, final byte[]... keys) {
18341841 * Return the difference between the Set stored at key1 and all the Sets key2, ..., keyN
18351842 * <p>
18361843 * <b>Example:</b>
1837- *
1844+ *
18381845 * <pre>
18391846 * key1 = [x, a, b, c]
18401847 * key2 = [c]
18411848 * key3 = [a, d]
18421849 * SDIFF key1,key2,key3 => [x, b]
18431850 * </pre>
1844- *
1851+ *
18451852 * Non existing keys are considered like empty sets.
18461853 * <p>
18471854 * <b>Time complexity:</b>
@@ -1941,6 +1948,13 @@ public Long zadd(final byte[] key, final Map<byte[], Double> scoreMembers, final
19411948 return client .getIntegerReply ();
19421949 }
19431950
1951+ @ Override
1952+ public Double zaddIncr (final byte [] key , final double score , final byte [] member , final ZAddParams params ) {
1953+ checkIsInMultiOrPipeline ();
1954+ client .zaddIncr (key , score , member , params );
1955+ return BuilderFactory .DOUBLE .build (client .getOne ());
1956+ }
1957+
19441958 @ Override
19451959 public Set <byte []> zrange (final byte [] key , final long start , final long stop ) {
19461960 checkIsInMultiOrPipeline ();
@@ -2199,65 +2213,65 @@ public List<byte[]> sort(final byte[] key) {
21992213 * <b>examples:</b>
22002214 * <p>
22012215 * Given are the following sets and key/values:
2202- *
2216+ *
22032217 * <pre>
22042218 * x = [1, 2, 3]
22052219 * y = [a, b, c]
2206- *
2220+ *
22072221 * k1 = z
22082222 * k2 = y
22092223 * k3 = x
2210- *
2224+ *
22112225 * w1 = 9
22122226 * w2 = 8
22132227 * w3 = 7
22142228 * </pre>
2215- *
2229+ *
22162230 * Sort Order:
2217- *
2231+ *
22182232 * <pre>
22192233 * sort(x) or sort(x, sp.asc())
22202234 * -> [1, 2, 3]
2221- *
2235+ *
22222236 * sort(x, sp.desc())
22232237 * -> [3, 2, 1]
2224- *
2238+ *
22252239 * sort(y)
22262240 * -> [c, a, b]
2227- *
2241+ *
22282242 * sort(y, sp.alpha())
22292243 * -> [a, b, c]
2230- *
2244+ *
22312245 * sort(y, sp.alpha().desc())
22322246 * -> [c, a, b]
22332247 * </pre>
2234- *
2248+ *
22352249 * Limit (e.g. for Pagination):
2236- *
2250+ *
22372251 * <pre>
22382252 * sort(x, sp.limit(0, 2))
22392253 * -> [1, 2]
2240- *
2254+ *
22412255 * sort(y, sp.alpha().desc().limit(1, 2))
22422256 * -> [b, a]
22432257 * </pre>
2244- *
2258+ *
22452259 * Sorting by external keys:
2246- *
2260+ *
22472261 * <pre>
22482262 * sort(x, sb.by(w*))
22492263 * -> [3, 2, 1]
2250- *
2264+ *
22512265 * sort(x, sb.by(w*).desc())
22522266 * -> [1, 2, 3]
22532267 * </pre>
2254- *
2268+ *
22552269 * Getting external keys:
2256- *
2270+ *
22572271 * <pre>
22582272 * sort(x, sp.by(w*).get(k*))
22592273 * -> [x, y, z]
2260- *
2274+ *
22612275 * sort(x, sp.by(w*).get(#).get(k*))
22622276 * -> [3, x, 2, y, 1, z]
22632277 * </pre>
@@ -2341,6 +2355,20 @@ public List<byte[]> blpop(final int timeout, final byte[]... keys) {
23412355 return blpop (getArgsAddTimeout (timeout , keys ));
23422356 }
23432357
2358+ @ Override
2359+ public KeyedTuple bzpopmax (final int timeout , final byte []... keys ) {
2360+ checkIsInMultiOrPipeline ();
2361+ client .bzpopmax (timeout , keys );
2362+ return BuilderFactory .KEYED_TUPLE .build (client .getBinaryMultiBulkReply ());
2363+ }
2364+
2365+ @ Override
2366+ public KeyedTuple bzpopmin (final int timeout , final byte []... keys ) {
2367+ checkIsInMultiOrPipeline ();
2368+ client .bzpopmin (timeout , keys );
2369+ return BuilderFactory .KEYED_TUPLE .build (client .getBinaryMultiBulkReply ());
2370+ }
2371+
23442372 private byte [][] getArgsAddTimeout (int timeout , byte [][] keys ) {
23452373 int size = keys .length ;
23462374 final byte [][] args = new byte [size + 1 ][];
@@ -3192,7 +3220,7 @@ public String shutdown() {
31923220 * <b>Format of the returned String:</b>
31933221 * <p>
31943222 * All the fields are in the form field:value
3195- *
3223+ *
31963224 * <pre>
31973225 * edis_version:0.07
31983226 * connected_clients:1
@@ -3205,7 +3233,7 @@ public String shutdown() {
32053233 * uptime_in_seconds:25
32063234 * uptime_in_days:0
32073235 * </pre>
3208- *
3236+ *
32093237 * <b>Notes</b>
32103238 * <p>
32113239 * used_memory is returned in bytes, and is the total number of bytes allocated by the program
@@ -3287,7 +3315,7 @@ public String slaveofNoOne() {
32873315 * are reported as a list of key-value pairs.
32883316 * <p>
32893317 * <b>Example:</b>
3290- *
3318+ *
32913319 * <pre>
32923320 * $ redis-cli config get '*'
32933321 * 1. "dbfilename"
@@ -3302,7 +3330,7 @@ public String slaveofNoOne() {
33023330 * 10. "everysec"
33033331 * 11. "save"
33043332 * 12. "3600 1 300 100 60 10000"
3305- *
3333+ *
33063334 * $ redis-cli config get 'm*'
33073335 * 1. "masterauth"
33083336 * 2. (nil)
@@ -3934,6 +3962,20 @@ public byte[] aclLog(byte[] options) {
39343962 return client .getBinaryBulkReply ();
39353963 }
39363964
3965+ @ Override
3966+ public String aclLoad () {
3967+ checkIsInMultiOrPipeline ();
3968+ client .aclLoad ();
3969+ return client .getStatusCodeReply ();
3970+ }
3971+
3972+ @ Override
3973+ public String aclSave () {
3974+ checkIsInMultiOrPipeline ();
3975+ client .aclSave ();
3976+ return client .getStatusCodeReply ();
3977+ }
3978+
39373979 @ Override
39383980 public String clientKill (final byte [] ipPort ) {
39393981 checkIsInMultiOrPipeline ();
@@ -4135,6 +4177,13 @@ public Long geoadd(final byte[] key, final Map<byte[], GeoCoordinate> memberCoor
41354177 return client .getIntegerReply ();
41364178 }
41374179
4180+ @ Override
4181+ public Long geoadd (final byte [] key , final GeoAddParams params , final Map <byte [], GeoCoordinate > memberCoordinateMap ) {
4182+ checkIsInMultiOrPipeline ();
4183+ client .geoadd (key , params , memberCoordinateMap );
4184+ return client .getIntegerReply ();
4185+ }
4186+
41384187 @ Override
41394188 public Double geodist (final byte [] key , final byte [] member1 , final byte [] member2 ) {
41404189 checkIsInMultiOrPipeline ();
@@ -4519,6 +4568,13 @@ public List<Object> xpending(byte[] key, byte[] groupname, byte[] start, byte[]
45194568 return client .getObjectMultiBulkReply ();
45204569 }
45214570
4571+ @ Override
4572+ public Object xpendingSummary (final byte [] key , final byte [] groupname ) {
4573+ checkIsInMultiOrPipeline ();
4574+ client .xpendingSummary (key , groupname );
4575+ return client .getOne ();
4576+ }
4577+
45224578 @ Override
45234579 public List <byte []> xclaim (byte [] key , byte [] groupname , byte [] consumername , long minIdleTime ,
45244580 long newIdleTime , int retries , boolean force , byte []... ids ) {
0 commit comments