from redis import Redis import msgpack redisConf = { "host" : "127.0.0.1", "port" : 6100, "db" : 1, "password" : None, } def numberUnpack(n) : if isinstance(n, bytes) : try: return int(n) except ValueError: try: return float(n) except ValueError: pass return n.decode() else : return n def stringUnpack(s) : if isinstance(s, bytes) : return n.decode() else : return s def tableUnpack(t) : if isinstance(t, bytes) : return msgpack.unpackb(t, raw = False) #解包 else : return t redisUnpack = { "number" : numberUnpack, "string" : stringUnpack, "table" : tableUnpack, "default" : numberUnpack, } def commonPack(w) : return w def tablePack(t): return msgpack.packb(t, use_bin_type = True) redisPack = { "default" : commonPack, "table" : tablePack, } redis = Redis( host = redisConf["host"], port = redisConf["port"], db = redisConf["db"], password = redisConf["password"] ) pipe = redis.pipeline() def decode(w, t = "default"): return redisUnpack[t](w) def encode(w, t = "default") : return redisPack[t](w)