微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

每个 url 的 Django redis 缓存

如何解决每个 url 的 Django redis 缓存

所以我正在尝试实现,此外还学习如何缓存每个 URL 的 Django 视图。我能够这样做,这就是正在发生的事情......

  1. 我第一次访问一个 URL,Django 设置了缓存。
  2. 如果浏览器相同,我会从缓存中获取结果,而不是在第二次访问期间查询数据库

现在的疑问是 - 如果我在第一次访问和第二次访问时更改我的浏览器,例如,从 Chrome 进行第一次访问(它设置缓存),然后在 Mozilla 的第二次访问期间,它会再次设置缓存。我期待它从缓存中返回结果。

在我研究 StackOverflow 并检查它设置为缓存的过程中,我发现有两件重要的事情,第一是标题,第二是内容。而且我认为每次更改浏览器时,标头都是新的,因此它会设置缓存而不是从缓存中返回结果。如果我错了,请告诉我。

我有一个公共 URL,我想在发出后续请求时显示缓存中的数据,而不管浏览器或移动/笔记本电脑/台式机,仅基于 URL,这无论如何可能吗?

**(我在想,如果来自该国北部的某个人访问了一个 URL,那么该国南部的后续访问相同的 URL 应该会从缓存中获取数据,但基于我的缓存到期时间)

另外如果我的理解有误请指正。

我正在学习在 Django 上使用 Redis 进行缓存。

解决方法

所以我手动为我的一些公共 url(视图)设置键,在创建和删除时调整缓存,在获取列表期间我检查缓存中的键值,如果缓存超时或不可用,则从缓存中获取结果然后获取数据库的结果。不知何故,这个响应时间比默认 django 函数 cache_page() 慢一点,我不知道为什么。有什么解释吗??还是我正确?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?