GETBIT

Syntax
GETBIT key offset
Available since:
2.2.0
Time complexity:
O(1)
ACL categories:
@read, @bitmap, @fast,

Returns the bit value at offset in the string value stored at key.

When offset is beyond the string length, the string is assumed to be a contiguous space with 0 bits. When key does not exist it is assumed to be an empty string, so offset is always out of range and the value is also assumed to be a contiguous space with 0 bits.

Examples

redis> SETBIT mykey 7 1
1) 1) "get"
   2) (integer) 2
   3) 1) "readonly"
      2) "fast"
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
   7) 1) "@read"
      2) "@string"
      3) "@fast"
   8) (empty array)
   9) 1) 1) "flags"
         2) 1) "RO"
            2) "access"
         3) "begin_search"
         4) 1) "type"
            2) "index"
            3) "spec"
            4) 1) "index"
               2) (integer) 1
         5) "find_keys"
         6) 1) "type"
            2) "range"
            3) "spec"
            4) 1) "lastkey"
               2) (integer) 0
               3) "keystep"
               4) (integer) 1
               5) "limit"
               6) (integer) 0
   10) (empty array)
2) 1) "set"
   2) (integer) -3
   3) 1) "write"
      2) "denyoom"
   4) (integer) 1
   5) (integer) 1
   6) (integer) 1
   7) 1) "@write"
      2) "@string"
      3) "@slow"
   8) (empty array)
   9) 1) 1) "notes"
         2) "RW and ACCESS due to the optional `GET` argument"
         3) "flags"
         4) 1) "RW"
            2) "access"
            3) "update"
            4) "variable_flags"
         5) "begin_search"
         6) 1) "type"
            2) "index"
            3) "spec"
            4) 1) "index"
               2) (integer) 1
         7) "find_keys"
         8) 1) "type"
            2) "range"
            3) "spec"
            4) 1) "lastkey"
               2) (integer) 0
               3) "keystep"
               4) (integer) 1
               5) "limit"
               6) (integer) 0
   10) (empty array)
3) 1) "eval"
   2) (integer) -3
   3) 1) "noscript"
      2) "stale"
      3) "skip_monitor"
      4) "no_mandatory_keys"
      5) "movablekeys"
   4) (integer) 0
   5) (integer) 0
   6) (integer) 0
   7) 1) "@slow"
      2) "@scripting"
   8) (empty array)
   9) 1) 1) "notes"
         2) "We cannot tell how the keys will be used so we assume the worst, RW and UPDATE"
         3) "flags"
         4) 1) "RW"
            2) "access"
            3) "update"
         5) "begin_search"
         6) 1) "type"
            2) "index"
            3) "spec"
            4) 1) "index"
               2) (integer) 2
         7) "find_keys"
         8) 1) "type"
            2) "keynum"
            3) "spec"
            4) 1) "keynumidx"
               2) (integer) 0
               3) "firstkey"
               4) (integer) 1
               5) "keystep"
               6) (integer) 1
   10) (empty array)
redis> GETBIT mykey 0
1) (nil)
2) 1) "evalsha"
   2) (integer) -3
   3) 1) "noscript"
      2) "stale"
      3) "skip_monitor"
      4) "no_mandatory_keys"
      5) "movablekeys"
   4) (integer) 0
   5) (integer) 0
   6) (integer) 0
   7) 1) "@slow"
      2) "@scripting"
   8) (empty array)
   9) 1) 1) "flags"
         2) 1) "RW"
            2) "access"
            3) "update"
         3) "begin_search"
         4) 1) "type"
            2) "index"
            3) "spec"
            4) 1) "index"
               2) (integer) 2
         5) "find_keys"
         6) 1) "type"
            2) "keynum"
            3) "spec"
            4) 1) "keynumidx"
               2) (integer) 0
               3) "firstkey"
               4) (integer) 1
               5) "keystep"
               6) (integer) 1
   10) (empty array)
3) 1) "config"
   2) (integer) -2
   3) (empty array)
   4) (integer) 0
   5) (integer) 0
   6) (integer) 0
   7) 1) "@slow"
   8) (empty array)
   9) (empty array)
   10) 1) 1) "config|get"
          2) (integer) -3
          3) 1) "admin"
             2) "noscript"
             3) "loading"
             4) "stale"
          4) (integer) 0
          5) (integer) 0
          6) (integer) 0
          7) 1) "@admin"
             2) "@slow"
             3) "@dangerous"
          8) (empty array)
          9) (empty array)
          10) (empty array)
       2) 1) "config|set"
          2) (integer) -4
          3) 1) "admin"
             2) "noscript"
             3) "loading"
             4) "stale"
          4) (integer) 0
          5) (integer) 0
          6) (integer) 0
          7) 1) "@admin"
             2) "@slow"
             3) "@dangerous"
          8) 1) "request_policy:all_nodes"
             2) "response_policy:all_succeeded"
          9) (empty array)
          10) (empty array)
       3) 1) "config|help"
          2) (integer) 2
          3) 1) "loading"
             2) "stale"
          4) (integer) 0
          5) (integer) 0
          6) (integer) 0
          7) 1) "@slow"
          8) (empty array)
          9) (empty array)
          10) (empty array)
       4) 1) "config|resetstat"
          2) (integer) 2
          3) 1) "admin"
             2) "noscript"
             3) "loading"
             4) "stale"
          4) (integer) 0
          5) (integer) 0
          6) (integer) 0
          7) 1) "@admin"
             2) "@slow"
             3) "@dangerous"
          8) 1) "request_policy:all_nodes"
             2) "response_policy:all_succeeded"
          9) (empty array)
          10) (empty array)
       5) 1) "config|rewrite"
          2) (integer) 2
          3) 1) "admin"
             2) "noscript"
             3) "loading"
             4) "stale"
          4) (integer) 0
          5) (integer) 0
          6) (integer) 0
          7) 1) "@admin"
             2) "@slow"
             3) "@dangerous"
          8) 1) "request_policy:all_nodes"
             2) "response_policy:all_succeeded"
          9) (empty array)
          10) (empty array)
4) (nil)
redis> SETBIT mykey 7 1
Cannot destructure property 'error' of 'replies[i]' as it is undefined.
redis> GETBIT mykey 0
Cannot destructure property 'error' of 'replies[i]' as it is undefined.
redis> GETBIT mykey 7
Cannot destructure property 'error' of 'replies[i]' as it is undefined.
redis> GETBIT mykey 100
Cannot destructure property 'error' of 'replies[i]' as it is undefined.
redis>

RESP2/RESP3 Reply

The bit value stored at offset, one of the following:


RATE THIS PAGE
Back to top ↑