From ebf7bd2d82b1132426d5d6ca5f133f184cbc92d5 Mon Sep 17 00:00:00 2001 From: Vladimir Solomatin Date: Thu, 7 Feb 2019 20:18:08 +0300 Subject: [PATCH] Add support for `zpopmax` and `zpopmin` redis commands (server 5.0.0+) --- src/Command.cpp | 2 ++ src/Command.h | 2 ++ test/basic.py | 8 +++++++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Command.cpp b/src/Command.cpp index 0bc6fe4..2ef9564 100644 --- a/src/Command.cpp +++ b/src/Command.cpp @@ -139,6 +139,8 @@ Command Command::CmdPool[AvailableCommands] = { {Zincrby, "zincrby", 4, 4, Write}, {Zinterstore, "zinterstore", 4, MaxArgs, Write}, {Zlexcount, "zlexcount", 4, 4, Read}, + {Zpopmax, "zpopmax", 2, 3, Write}, + {Zpopmin, "zpopmin", 2, 3, Write}, {Zrange, "zrange", 4, 5, Read}, {Zrangebylex, "zrangebylex", 4, 7, Read}, {Zrangebyscore, "zrangebyscore", 4, 8, Read}, diff --git a/src/Command.h b/src/Command.h index d77c97a..5c2eb68 100644 --- a/src/Command.h +++ b/src/Command.h @@ -156,6 +156,8 @@ public: Zincrby, Zinterstore, Zlexcount, + Zpopmax, + Zpopmin, Zrange, Zrangebylex, Zrangebyscore, diff --git a/test/basic.py b/test/basic.py index e5bf04c..5a836d6 100755 --- a/test/basic.py +++ b/test/basic.py @@ -391,7 +391,7 @@ Cases = [ [('scard', '{k}2'), 3], ]), ('zset', [ - [('del', 'k', '{k}2', '{k}3', '{k}4'), ], + [('del', 'k', '{k}2', '{k}3', '{k}4', '{k}5', '{k}6'), ], [('zadd', 'k', 10, 'apple'), 1], [('zcard', 'k'), 1], [('zincrby', 'k', 2, 'apple'), '12'], @@ -438,6 +438,12 @@ Cases = [ [('zunionstore', '{k}3', 2, 'k', '{k}2'), 4], [('zunionstore', '{k}3', 2, 'k', '{k}2', 'AGGREGATE', 'MAX'), 4], [('zunionstore', '{k}3', 2, 'k', '{k}2', 'WEIGHTS', 0.5, 1.2, 'AGGREGATE', 'MAX'), 4], + [('zadd', '{k}5', 0, 'apple', 9, 'banana', 1, 'pear', 3, 'orange', 4, 'cat'), 5], + [('zpopmax', '{k}5'), ['banana', '9']], + [('zpopmax', '{k}5', 3), ['cat', '4', 'orange', '3', 'pear', '1']], + [('zadd', '{k}6', 0, 'apple', 9, 'banana', 1, 'pear', 3, 'orange', 4, 'cat'), 5], + [('zpopmin', '{k}6'), ['apple', '0']], + [('zpopmin', '{k}6', 3), ['pear', '1', 'orange', '3', 'cat', '4']], ]), ('hyperloglog', [ [('del', 'k', '{k}2', '{k}3'), ],