gpt4 book ai didi

python - 是否必须将 redis-py 对象设置为全局变量才能在函数中使用?

转载 作者:可可西里 更新时间:2023-11-01 11:24:45 30 4
gpt4 key购买 nike

我正在使用 redis-py 来存储一个对象:

r = redis.StrictRedis(host='localhost', port=6379, db=0)


def store_object(key, obj):
var = pickle.dumps(obj)
r.set(key, var)


def restore_object(key):
obj = pickle.loads(r.get(key))
return obj


store_object('model', Object())

然后在不同的函数中检索对象:

def function():
print(restore_object('model'))

打印“无”。我是否需要使恢复的对象成为全局变量或其他东西(我使用 Redis 的全部原因是为了避免这种情况)?

只是在做(不是在函数中):

store_object('model', Object())
print(restore_object('model'))

显示正确的对象。

此外,将参数传递给函数也不是一种选择

最佳答案

您同时使用了 pickle 和 Redis,这似乎是多余的。 Redis 的全部意义在于能够存储/获取存储在内存中的值,而无需处理开销。我想你想做的是:

r = redis.StrictRedis(host='localhost', port=6379, db=0)
r.set('a',1) # Setting a value which is stored in memory
... some code later
r.get('a') # Get said value(s)

不需要辅助功能或pickle

关于python - 是否必须将 redis-py 对象设置为全局变量才能在函数中使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49455115/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com