Bitmap

BITFIELD

Sets or gets parts of a bitfield

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 1result = redis.bitfield("mykey")        .set("u4", 0, 16)        .incr("u4", 4, 1)        .execute()assert result == [0, 1]

Commands

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.

Arguments

keybodystrrequired

The string key to operate on.

Response

List[int]required

A list of integers, one for each operation.

Get
redis.set("mykey", "\x05\x06\x07")result = redis.bitfield("mykey") \    .get("u8", 0) \    .get("u8", 8) \    .get("u8", 16) \    .execute()assert result == [5, 6, 7]
Set
redis.set("mykey", "")result = redis.bitfield("mykey") \    .set("u4", 0, 16) \    .set("u4", 4, 1) \    .execute()  assert result == [0, 1]
Incr
redis.set("mykey", "")# Increment offset 0 by 16, return # Increment offset 4 by 1result = redis.bitfield("mykey") \    .incr("u4", 0, 16) \    .incr("u4", 4, 1) \    .execute()assert result == [0, 1]
Loading search…