1、通过pickle序列化的方式
import pandas as pd
import pickle
import redis
rs = redis.StrictRedis(host='127.0.0.1')
df=pd.DataFrame([range(5)]*5,index=list('HELLO'),columns=list('HELLO'))
df_bytes = pickle.dumps(df)
rs.set('test_df', df_bytes)
df_bytes_from_redis = rs.get('test_df')
df_from_redis = pickle.loads(df_bytes_from_redis)
print(df_from_redis)
2、通过df.to_msgpack的方式
import pandas as pd
import pickle
import redis
rs = redis.StrictRedis(host='127.0.0.1')
df=pd.DataFrame([range(5)]*5,index=list('HELLO'),columns=list('HELLO'))
df_bytes = df.to_msgpack()
rs.set('test_df', df_bytes)
df_bytes_from_redis = rs.get('test_df')
df_from_redis = pd.read_msgpack(df_bytes_from_redis)
print(df_from_redis)
这种方式打印下df_bytes可以看到转出来的字节流大概是pickle的1/4,测试下来转换的时间也要比pickle的快3-4倍