redis.set("mykey", "\x05\x06\x07")

result = redis.bitfield("mykey") \
    .get("u8", 0) \
    .get("u8", 8) \
    .get("u8", 16) \

assert result == [5, 6, 7]

The bitfield function returns a BitFieldCommands instance that can be used to execute multiple bitfield operations in a single command.

The encoding can be a signed or unsigned integer, by prefixing the type with i or u. For example, i4 is a signed 4-bit integer, and u8 is an unsigned 8-bit integer.

redis.set("mykey", "")

# Sets the first 4 bits to 1
# Increments the next 4 bits by 1
result = redis.bitfield("mykey")
        .set("u4", 0, 16)
        .incr("u4", 4, 1)

assert result == [0, 1]


get(type: str, offset: int)

Returns a value from the bitfield at the given offset.

set(type: str, offset: int, value: int)

Sets a value and returns the old value.

incr(type: str, offset: int, increment: int)

Increments a value and returns the new value.



The string key to operate on.


A list of integers, one for each operation.