Redis Protocol

Redis Protocol implemented by python


This is the protocol implemented followed by redis protocol specification. I had used it in my redis_proxy project.

>>> from redis_protocol import decode, encode
>>> encode("ping")  # encode a request
... '*1\r\n$4\r\nping\r\n'
>>> decode('*1\r\n$4\r\nping\r\n') # decode a request body
... ["ping"]
>>> decode("$6\r\nfoobar\r\n")  # decode a response
... "foobar"

parse redis protocol stream

parse redis protocol stream to redis commands,such as redis pipeline requests or raw responses.

>>> from redis_protocol import parse_stream
>>> data = '*3\r\n$3\r\nSET\r\n$15\r\nmemtier-8232902\r\n$2\r\nxx\r\n' \
       '*3\r\n$3\r\nSET\r\n$15\r\nmemtier-8232902\r\n$2\r\nxx\r\n' \
>>> print(parse_stream(data))
... ['SET memtier-8232902 xx', 'SET memtier-8232902 xx', 'SET memtier-7630684 AAA']