gpt4 book ai didi

Django缓存如何删除 ":1:"的键前缀

转载 作者:行者123 更新时间:2023-12-04 03:02:46 34 4
gpt4 key购买 nike

我在 Django 中设置了一个缓存,如下所示:

from django.core.cache import cache
...
cache.set("cae9ad31b9206a1b5594813b509e1003", "test", timeout=10)

它生成一个这样的 key :
:1:cae9ad31b9206a1b5594813b509e1003

如何删除 :1:键的前缀?

最佳答案

您不必担心,真的,因为这不会影响您 get键的值。

cache.get("cae9ad31b9206a1b5594813b509e1003")
# outputs
"test"

为什么会这样?

Django 通过组合 key 生成缓存键。你给它 version的缓存。

例子:
cache.set("my_key", "value", version=2)
# becomes
":2:my-key"

因为,默认情况下 version=1 ,这就是为什么在你的情况下它变成 :1:cae9a... .

这叫做 Cache Versioning .它很有用,因为这样您可以拥有特定对象的多个缓存版本。

如何覆盖这个?

如果您出于任何原因仍想覆盖此行为,您可以将其作为 docs suggest .

首先在这样的地方创建一个函数:
def my_key_maker(key, key_prefix, version):
return key # just return the key without doing anything

然后,在您的 CACHES设置这样做:
CACHES = {
"default": {
"BACKEND": ...,
# other settings ...
"KEY_FUNCTION": "path.to.my_key_maker"
}
}

关于Django缓存如何删除 ":1:"的键前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47713718/

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