summaryrefslogtreecommitdiff
path: root/redis/client.py
diff options
context:
space:
mode:
authorPepijn de Vos <pepijndevos@gmail.com>2014-04-06 19:33:38 +0200
committerPepijn de Vos <pepijndevos@gmail.com>2014-04-06 19:33:38 +0200
commit02485d4af3cc026a7aa371f6af62b1cf9bc93d4e (patch)
tree2af8c8e0b88fc41dcbdf21a9dfde3de8b9b73b61 /redis/client.py
parent5633e5506fdd218ba25cf589ffc3609bbdd0d98a (diff)
downloadredis-py-02485d4af3cc026a7aa371f6af62b1cf9bc93d4e.tar.gz
Implement HyperLogLog commands
Diffstat (limited to 'redis/client.py')
-rw-r--r--redis/client.py24
1 files changed, 20 insertions, 4 deletions
diff --git a/redis/client.py b/redis/client.py
index 52f7227..9c9486f 100644
--- a/redis/client.py
+++ b/redis/client.py
@@ -276,9 +276,9 @@ class StrictRedis(object):
),
string_keys_to_dict(
'BITCOUNT DECRBY DEL GETBIT HDEL HLEN INCRBY LINSERT LLEN LPUSHX '
- 'RPUSHX SADD SCARD SDIFFSTORE SETBIT SETRANGE SINTERSTORE SREM '
- 'STRLEN SUNIONSTORE ZADD ZCARD ZREM ZREMRANGEBYRANK '
- 'ZREMRANGEBYSCORE',
+ 'PFADD PFCOUNT RPUSHX SADD SCARD SDIFFSTORE SETBIT SETRANGE '
+ 'SINTERSTORE SREM STRLEN SUNIONSTORE ZADD ZCARD ZREM '
+ 'ZREMRANGEBYRANK ZREMRANGEBYSCORE',
int
),
string_keys_to_dict('INCRBYFLOAT HINCRBYFLOAT', float),
@@ -290,7 +290,7 @@ class StrictRedis(object):
string_keys_to_dict('SORT', sort_return_tuples),
string_keys_to_dict('ZSCORE ZINCRBY', float_or_none),
string_keys_to_dict(
- 'FLUSHALL FLUSHDB LSET LTRIM MSET RENAME '
+ 'FLUSHALL FLUSHDB LSET LTRIM MSET PFMERGE RENAME '
'SAVE SELECT SHUTDOWN SLAVEOF WATCH UNWATCH',
lambda r: nativestr(r) == 'OK'
),
@@ -1527,6 +1527,22 @@ class StrictRedis(object):
pieces.append(aggregate)
return self.execute_command(*pieces)
+ # HYPERLOGLOG COMMANDS
+ def pfadd(self, name, *values):
+ "Adds the specified elements to the specified HyperLogLog."
+ return self.execute_command('PFADD', name, *values)
+
+ def pfcount(self, name):
+ """
+ Return the approximated cardinality of
+ the set observed by the HyperLogLog at key.
+ """
+ return self.execute_command('PFCOUNT', name)
+
+ def pfmerge(self, dest, *sources):
+ "Merge N different HyperLogLogs into a single one."
+ return self.execute_command('PFMERGE', dest, *sources)
+
# HASH COMMANDS
def hdel(self, name, *keys):
"Delete ``keys`` from hash ``name``"