module Redis::Commands::Bitmaps

def bitcount(key, start = 0, stop = -1)

Returns:
  • (Integer) - the number of bits set to 1

Parameters:
  • stop (Integer) -- stop index
  • start (Integer) -- start index
  • key (String) --
def bitcount(key, start = 0, stop = -1)
  send_command([:bitcount, key, start, stop])
end

def bitop(operation, destkey, *keys)

Returns:
  • (Integer) - the length of the string stored in `destkey`

Parameters:
  • keys (String, Array) -- one or more source keys to perform `operation`
  • destkey (String) -- destination key
  • operation (String) -- e.g. `and`, `or`, `xor`, `not`
def bitop(operation, destkey, *keys)
  keys.flatten!(1)
  command = [:bitop, operation, destkey]
  command.concat(keys)
  send_command(command)
end

def bitpos(key, bit, start = nil, stop = nil)

Returns:
  • (Integer) - the position of the first 1/0 bit.

Parameters:
  • stop (Integer) -- stop index
  • start (Integer) -- start index
  • bit (Integer) -- whether to look for the first 1 or 0 bit
  • key (String) --
def bitpos(key, bit, start = nil, stop = nil)
  raise(ArgumentError, 'stop parameter specified without start parameter') if stop && !start
  command = [:bitpos, key, bit]
  command << start if start
  command << stop if stop
  send_command(command)
end

def getbit(key, offset)

Returns:
  • (Integer) - `0` or `1`

Parameters:
  • offset (Integer) -- bit offset
  • key (String) --
def getbit(key, offset)
  send_command([:getbit, key, offset])
end

def setbit(key, offset, value)

Returns:
  • (Integer) - the original bit value stored at `offset`

Parameters:
  • value (Integer) -- bit value `0` or `1`
  • offset (Integer) -- bit offset
  • key (String) --
def setbit(key, offset, value)
  send_command([:setbit, key, offset, value])
end