@@ -276,9 +276,9 @@ class StrictRedis(object):
276
276
),
277
277
string_keys_to_dict (
278
278
'BITCOUNT DECRBY DEL GETBIT HDEL HLEN INCRBY LINSERT LLEN LPUSHX '
279
- 'RPUSHX SADD SCARD SDIFFSTORE SETBIT SETRANGE SINTERSTORE SREM '
280
- 'STRLEN SUNIONSTORE ZADD ZCARD ZREM ZREMRANGEBYRANK '
281
- 'ZREMRANGEBYSCORE' ,
279
+ 'PFADD PFCOUNT RPUSHX SADD SCARD SDIFFSTORE SETBIT SETRANGE '
280
+ 'SINTERSTORE SREM STRLEN SUNIONSTORE ZADD ZCARD ZREM '
281
+ 'ZREMRANGEBYRANK ZREMRANGEBYSCORE' ,
282
282
int
283
283
),
284
284
string_keys_to_dict ('INCRBYFLOAT HINCRBYFLOAT' , float ),
@@ -290,7 +290,7 @@ class StrictRedis(object):
290
290
string_keys_to_dict ('SORT' , sort_return_tuples ),
291
291
string_keys_to_dict ('ZSCORE ZINCRBY' , float_or_none ),
292
292
string_keys_to_dict (
293
- 'FLUSHALL FLUSHDB LSET LTRIM MSET RENAME '
293
+ 'FLUSHALL FLUSHDB LSET LTRIM MSET PFMERGE RENAME '
294
294
'SAVE SELECT SHUTDOWN SLAVEOF WATCH UNWATCH' ,
295
295
lambda r : nativestr (r ) == 'OK'
296
296
),
@@ -1527,6 +1527,22 @@ def _zaggregate(self, command, dest, keys, aggregate=None):
1527
1527
pieces .append (aggregate )
1528
1528
return self .execute_command (* pieces )
1529
1529
1530
+ # HYPERLOGLOG COMMANDS
1531
+ def pfadd (self , name , * values ):
1532
+ "Adds the specified elements to the specified HyperLogLog."
1533
+ return self .execute_command ('PFADD' , name , * values )
1534
+
1535
+ def pfcount (self , name ):
1536
+ """
1537
+ Return the approximated cardinality of
1538
+ the set observed by the HyperLogLog at key.
1539
+ """
1540
+ return self .execute_command ('PFCOUNT' , name )
1541
+
1542
+ def pfmerge (self , dest , * sources ):
1543
+ "Merge N different HyperLogLogs into a single one."
1544
+ return self .execute_command ('PFMERGE' , dest , * sources )
1545
+
1530
1546
# HASH COMMANDS
1531
1547
def hdel (self , name , * keys ):
1532
1548
"Delete ``keys`` from hash ``name``"
0 commit comments