Redis - пример Python для xadd и xread - PullRequest
1 голос
/ 06 марта 2019

Не могли бы вы привести очень простой пример использования Redis 'xread и xadd в Python (который отображает тип и формат возвращаемых значений из xread и ввода xadd)? Я уже прочитал много документации, но ни одна из них не написана на Python.

Redis doc приводит пример:

> XADD mystream * sensor-id 1234 temperature 19.8
1518951480106-0

но если я попробую в python:

sample = {b"hello":b"12"}
id = r.xadd("mystream", sample)

Я получаю эту ошибку:

redis.exceptions.ResponseError: WRONGTYPE Operation against a key holding the wrong kind of value

Ответы [ 2 ]

1 голос
/ 07 марта 2019

перед запуском обязательно очистите, чтобы убедиться, что список / поток с таким именем не существует.:

redis-cli flushall
if __name__ == '__main__':
    r = redis.Redis(host='localhost', port=6379, db=0)
    encoder = JSONEncoder()
    sample = {"hello": encoder.encode([1234,125, 1235, 1235])} # converts list to string
    stream_name = 'mystream'

    for i in range(10):
        r.xadd(stream_name, sample)

    # "$" doesn't seem to work in python
    read_samples = r.xread({stream_name:b"0-0"})

1 голос
/ 06 марта 2019

Глядя на помощь (или строки документации (1) , (2) ) для функций, они довольно просты:

>>> import redis
>>> r = redis.Redis()
>>> help(r.xadd)
    xadd(name, fields, id='*', maxlen=None, approximate=True)

    Add to a stream.
    name: name of the stream
    fields: dict of field/value pairs to insert into the stream
    id: Location to insert this record. By default it is appended.
    maxlen: truncate old stream members beyond this size
    approximate: actual stream length may be slightly more than maxlen

>>> help(r.xread)
    xread(streams, count=None, block=None)

    Block and monitor multiple streams for new data.
    streams: a dict of stream names to stream IDs, where
               IDs indicate the last ID already seen.
    count: if set, only return this many items, beginning with the
           earliest available.
    block: number of milliseconds to wait, if nothing already present.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...