diff options
author | Pepijn de Vos <pepijndevos@gmail.com> | 2014-04-06 19:33:38 +0200 |
---|---|---|
committer | Pepijn de Vos <pepijndevos@gmail.com> | 2014-04-06 19:33:38 +0200 |
commit | 02485d4af3cc026a7aa371f6af62b1cf9bc93d4e (patch) | |
tree | 2af8c8e0b88fc41dcbdf21a9dfde3de8b9b73b61 /redis/client.py | |
parent | 5633e5506fdd218ba25cf589ffc3609bbdd0d98a (diff) | |
download | redis-py-02485d4af3cc026a7aa371f6af62b1cf9bc93d4e.tar.gz |
Implement HyperLogLog commands
Diffstat (limited to 'redis/client.py')
-rw-r--r-- | redis/client.py | 24 |
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``" |