Files
redis-docs/docs/SetbitCommand.rst
T
Kenneth Reitz 525e9fd3d3 all into sphinx
2011-04-06 13:27:48 -04:00

36 lines
1.6 KiB
ReStructuredText
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
`|Redis Documentation| <index.html>`_
**SetbitCommand: Contents**
  `SETBIT \_key\_ \_offset\_ \_value\_ (Redis > <#SETBIT%20_key_%20_offset_%20_value_%20(Redis%20%3E>`_
    `Return value <#Return%20value>`_
SetbitCommand
=============
SETBIT \_key\_ \_offset\_ \_value\_ (Redis >
============================================
2.1.8) = *Time complexity: O(1)*
Sets or clears the bit at *offset* in the string value stored at
*key*.
The bit is either set or cleared depending on *value*, which can be
either 0 or 1. When *key* does not exist, a new string value is
created. The string is grown to make sure it can hold a bit at
*offset*. The *offset* argument is required to be greater than or
equal to 0, and is limited to
2\ :sup:`32-1 (which limits bitmaps to 512MB). When the string at *key* is grown, added bits are set to 0.**Warning**: When setting the last possible bit (*offset* equal to 2`\ 32-1)
and the string value stored at *key* does not yet hold a string
value, or holds a small string value, Redis needs to allocate all
intermediate memory which can block the server for some time. On a
2010 Macbook Pro, setting bit number
2\ :sup:`32-1 (512MB allocation) takes ~300ms, setting bit number 2`\ 30-1
(128MB allocation) takes ~80ms, setting bit number
2\ :sup:`28-1 (32MB allocation) takes ~30ms and setting bit number 2`\ 26-1
(8MB allocation) takes ~8ms. Note that once this first allocation
is done, subsequent calls to SETBIT for the same *key* will not
have the allocation overhead.
Return value
------------
`Integer reply <ReplyTypes.html>`_, specifically: the original bit
value stored at *offset*.
.. |Redis Documentation| image:: redis.png