@@ -581,8 +581,8 @@ class Redis:
581
581
"""
582
582
RESPONSE_CALLBACKS = {
583
583
** string_keys_to_dict (
584
- 'AUTH COPY EXPIRE EXPIREAT HEXISTS HMSET MOVE MSETNX PERSIST '
585
- 'PSETEX RENAMENX SISMEMBER SMOVE SETEX SETNX' ,
584
+ 'AUTH COPY EXPIRE EXPIREAT HEXISTS HMSET LMOVE BLMOVE MOVE '
585
+ 'MSETNX PERSIST PSETEX RENAMENX SISMEMBER SMOVE SETEX SETNX' ,
586
586
bool
587
587
),
588
588
** string_keys_to_dict (
@@ -1851,6 +1851,23 @@ def keys(self, pattern='*'):
1851
1851
"Returns a list of keys matching ``pattern``"
1852
1852
return self .execute_command ('KEYS' , pattern )
1853
1853
1854
+ def lmove (self , first_list , second_list , src = "LEFT" , dest = "RIGHT" ):
1855
+ """
1856
+ Atomically returns and removes the first/last element of a list,
1857
+ pushing it as the first/last element on the destination list.
1858
+ Returns the element being popped and pushed.
1859
+ """
1860
+ params = [first_list , second_list , src , dest ]
1861
+ return self .execute_command ("LMOVE" , * params )
1862
+
1863
+ def blmove (self , first_list , second_list , timeout ,
1864
+ src = "LEFT" , dest = "RIGHT" ):
1865
+ """
1866
+ Blocking version of lmove.
1867
+ """
1868
+ params = [first_list , second_list , src , dest , timeout ]
1869
+ return self .execute_command ("BLMOVE" , * params )
1870
+
1854
1871
def mget (self , keys , * args ):
1855
1872
"""
1856
1873
Returns a list of values ordered identically to ``keys``
0 commit comments