<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <html> <head> <link type="text/css" rel="stylesheet" href="style.css" /> </head> <body> <div id="page"> <div id='header'> <a href="index.html"> <img style="border:none" alt="Redis Documentation" src="redis.png"> </a> </div> <div id="pagecontent"> <div class="index"> <!-- This is a (PRE) block. Make sure it's left aligned or your toc title will be off. --> <b>GetsetCommand: Contents</b><br> <a href="#GETSET _key_ _value_">GETSET _key_ _value_</a><br> <a href="#Return value">Return value</a><br> <a href="#Design patterns">Design patterns</a><br> <a href="#See also">See also</a> </div> <h1 class="wikiname">GetsetCommand</h1> <div class="summary"> </div> <div class="narrow"> <h1><a name="GETSET _key_ _value_">GETSET _key_ _value_</a></h1> <i>Time complexity: O(1)</i><blockquote>GETSET is an atomic <i>set this value and return the old value</i> command.Set <i>key</i> to the string <i>value</i> and return the old value stored at <i>key</i>.The string can't be longer than 1073741824 bytes (1 GB).</blockquote> <h2><a name="Return value">Return value</a></h2><a href="ReplyTypes.html">Bulk reply</a><h2><a name="Design patterns">Design patterns</a></h2><blockquote>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 <i>mycounter</i> every time some event occurred, but from time totime we need to get the value of the counter and reset it to zero atomicallyusing <code name="code" class="python">GETSET mycounter 0</code>.</blockquote> <h2><a name="See also">See also</a></h2> <ul><li> <a href="GetCommand.html">GET</a></li><li> <a href="SetCommand.html">SET</a></li><li> <a href="SetnxCommand.html">SETNX</a></li></ul> </div> </div> </div> </body> </html>