redis协议
Redis 的通信协议是基于文本的,且以行为划分,每行以 \r\n 结束。每一行都有一个消息头,消息头共分为5种分别如下:
+ 表示一个正确的状态信息,具体信息是当前行 + 后面的字符;
- 表示一个错误信息,具体信息是当前行-后面的字符;
* 表示消息体总共有多少行,不包括当前行,* 后面是具体的行数;
$ 表示下一行数据长度,不包括换行符长度 \r\n, $ 后面则是对应的长度的数据;
from socket import * client = socket(AF_INET, SOCK_STREAM) client.connect(('localhost', 6379)) def set(key,value): value = str(value) sendData = '*3\r\n$3\r\nSET\r\n${0}\r\n{1}\r\n${2}\r\n{3}\r\n'.format(len(key),key,len(value),value) client.send(sendData.encode('utf-8')) print(client.recv(1024).decode('utf-8')) def get(key): sendData = '*2\r\n$3\r\nGET\r\n${0}\r\n{1}\r\n'.format(len(key),key) client.send(sendData.encode('utf-8')) print(client.recv(1024).decode('utf-8'))View Code