`|Redis Documentation| `_ **GetsetCommand: Contents**   `GETSET \_key\_ \_value\_ <#GETSET%20_key_%20_value_>`_     `Return value <#Return%20value>`_     `Design patterns <#Design%20patterns>`_ GetsetCommand ============= #sidebar `StringCommandsSidebar `_ GETSET \_key\_ \_value\_ ======================== *Time complexity: O(1)* GETSET is an atomic *set this value and return the old value* command.Set *key* to the string *value* and return the old value stored at *key*.The string can't be longer than 1073741824 bytes (1 GB). Return value ------------ `Bulk reply `_ Design patterns --------------- GETSET can be used together with INCR for counting with atomic reset whena given condition arises. For example a process may call INCR against thekey *mycounter* every time some event occurred, but from time totime we need to get the value of the counter and reset it to zero atomicallyusing ``GETSET mycounter 0``. .. |Redis Documentation| image:: redis.png