import pickle
import redis
db = redis.Redis(host='localhost', port=6379, password='123456')
class Eg:
def __init__(self, userId:str, username:str):
self.userId= userId
self.username= username
def foo(self):
return f'userId: {self.userId}, username: {self.username}'
def set(key, value):
db.set(key, value)
def get(key):
return db.get(key)
db.set('a', pickle.dumps(Eg('12345', 'xxs')))
db.set('b', pickle.dumps(Eg('54321', 'lhc')))
ad= get('a')
bd= get('b')
obj1 = pickle.loads(ad)
obj2 = pickle.loads(bd)
print(obj1.userId) # 12345
print(obj1.username) # xxs
print(obj1.foo())
print(obj2.userId)
print(obj2.username)
print(obj2.foo())
shelve持久化:
import shelve
'持久化会生成3个文件:*.bak, *.dat *.dir'
## 定义类
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return self.name
# 储存
def write_shelve():
s = Student('Tom', 20) #构造类型的实例
db = shelve.open('User') #构造打开数据文件
db['s'] = s
db.close() # 关闭数据文件
# 读取
def read_shelve():
db = shelve.open('User') #打开数据文件
st = db['s']
print(st)
print(st.name)
print(st.age)
db.close()
if __name__ == '__main__':
write_shelve()
read_shelve()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)