redisCommon.py 1.06 KB
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)