gpt4 book ai didi

Django Redis 缓存值

转载 作者:IT王子 更新时间:2023-10-29 06:05:16 26 4
gpt4 key购买 nike

我已经使用 python 脚本在外部将值设置为 Redis 服务器。

r = redis.StrictRedis(host='localhost', port=6379, db=1)
r.set('foo', 'bar')

并尝试使用 views.py 中的 django 缓存从 Web 请求中获取值。

from django.core.cache import cache
val = cache.get("foo")

它返回 None。但是当我试图从

中获取它时
from django_redis import get_redis_connection
con = get_redis_connection("default")
val = con.get("foo")

它返回正确的值“bar”。缓存和直接连接如何工作?

最佳答案

库通常使用多个内部前缀将键存储在 redis 中,以免与用户定义的键混淆。

例如,django-redis-cache , 在您保存到其中的每个 key 前添加一个“:1:”。

例如,当您执行 r.set('foo', 'bar') 时,它会将键设置为“:1:foo”。由于您不知道您的 key 前面的前缀,您无法使用普通获取获取 key ,您必须使用它自己的 API 来获取。

r.set('foo', 'bar')

r.get('foo') # None
r.get(':1:foo') # bar

所以最后,它返回到你使用的库,去阅读它的代码,看看它是如何保存 key 的。 redis-cli 可以成为您宝贵的 friend 。基本上使用 cache.set('foo', 'bar') 设置一个键,然后进入 redis-cli 并使用 'keys *' 命令查看是什么键为 foo 设置。

关于Django Redis 缓存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39524653/

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