Lightweight Python utilities for working with Redis
minid
and limit
parameters on Stream.trim()
, #169None
, #171xpending_range
function. This is resolved in walrus 0.9.0.autoclaim()
to the ConsumerGroupStream
class.autocomplete
module.HSET
instead of HMSET
.search_items()
method to the full-text index which returns a 2-tuple of (key, doc)
.bmove_tail
and brpoplpush
wrappers.delete()
when using Model create()
API.Hash.setnx()
method to the hash container.get_key()
method to return the proper container type, #120.Cache
class.repr
issues with some of the container types.Graph
storage that cuts the amount of memory needed in half.zpopmin
, zpopmax
, and the blocking bzpopmin
, bzpopmax
Depends on redis-py 3.0 or newer. There are a number of backwards-incompatible changes in redis-py. Because walrus provides high-level abstractions for the Redis data-types/commands, your walrus code should work with little or no modifications. Refer to the list of changes for more information.
redis-py added support for stream
commands as well as zpop/bzpop. As a result, walrus no longer contains separate
implementations for these commands. For the majority of cases the low-level
method signatures and return values are unchanged, notably, the XREADGROUP
return value is slightly different. The timeout
parameter, where it was
accepted, has been renamed to block
for greater compatibility with redis-py.
Prior to 0.7.0, you would read from a consumer-group (which might contain one
or more streams) and receive a dict
keyed by the stream, whose value was a
list of (message_id, data)
2-tuples. Going forward, the return value will be
a list of [stream_name, [(message_id, data), ...]]
. To retain the
functionality of walrus prior-to 0.7.0, just wrap the return value in a call to
the dict
constructor: ret = dict(consumer_group.read(count=1))
.
add()
and contains()
.