gpt4 book ai didi

google-app-engine - 避免 Memcache "1000000 bytes in length"值限制

转载 作者:太空宇宙 更新时间:2023-11-03 15:18:00 25 4
gpt4 key购买 nike

我的模型有不同的实体,我想像公司的员工一样计算一次。为了避免一次又一次地进行相同的查询,计算出的列表保存在 Memcache 中(持续时间 = 1 天)。问题是应用程序有时会给我一个错误,即 Memcache 中存储的字节数超过了允许的数量:

Values may not be more than 1000000 bytes in length; received 1071339 bytes

存储对象列表是您应该使用 Memcache 做的事情吗?如果是这样,避免上述错误的最佳做法是什么?我目前正在拉动 1000 个物体。您是否将值限制为 < 200?检查对象在内存中的大小似乎不是一个好主意,因为它们可能在进入 Memcache 之前正在处理(序列化或类似的事情)。

最佳答案

David,你没有说你使用的是哪种语言,但在 Python 中你可以像 Ibrahim 建议的那样使用 pickle 做同样的事情。您需要做的就是编写两个小的辅助函数来读取大对象并将其写入内存缓存。这是一个(未经测试的)草图:

def store(key, value, chunksize=950000):
serialized = pickle.dumps(value, 2)
values = {}
for i in xrange(0, len(serialized), chunksize):
values['%s.%s' % (key, i//chunksize)] = serialized[i : i+chunksize]
return memcache.set_multi(values)

def retrieve(key):
result = memcache.get_multi(['%s.%s' % (key, i) for i in xrange(32)])
serialized = ''.join([v for k, v in sorted(result.items()) if v is not None])
return pickle.loads(serialized)

关于google-app-engine - 避免 Memcache "1000000 bytes in length"值限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9127982/

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