python实现简单redis客户端(2)重构

来源:互联网 发布:淘宝网上图片无法显示 编辑:程序博客网 时间:2024/06/03 12:39

将客户端划分为通信模块和客户端模块进行重构

from socket import *class Connection:    def __init__(self, host="localhost", port=6379):        self.host = host        self.port = port        self.client=socket(AF_INET, SOCK_STREAM)    def connect(self):        self.client.connect((self.host,self.port))    def write(self,data):        self.client.send(data.encode('utf8'))    def read(self):        data=self.client.recv(1024)        return dataclass Client:    def __init__(self, host="localhost", port=6379, password=None, db=None):        self.connection = Connection(host=host, port=port)        self.password = password        self.db = db or 0        self.connection.connect()    def format_command(self,*tokens, **kwargs):        cmds = []        for t in tokens:            cmds.append("$%s\r\n%s\r\n" % (len(t), t))        return "*%s\r\n%s" % (len(tokens), "".join(cmds))    def execute_command(self,cmd,*args,**kwargs):        command = self.format_command(cmd,*args,**kwargs)        self.connection.write(command)        data = self.connection.read()        return data         def set(self,key,value):        result = self.execute_command("SET",key,value)        return result    def get(self,key):        value = self.execute_command("GET",key)        return valueif __name__ == '__main__':    client=Client()    client.set('dog','love')    value = client.get('dog')    print(value)

效果:
这里写图片描述

原创粉丝点击