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 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' \
'*3\r\n$3\r\nSET\r\n$15\r\nmemtier-7630684\r\n$3\r\nAAA\r\n'
>>> print(parse_stream(data))
... ['SET memtier-8232902 xx', 'SET memtier-8232902 xx', 'SET memtier-7630684 AAA']