我已经使用托管在 apache 上的应用程序之一配置了 johnny 缓存。它配置了 memcached 作为后端,在默认端口上运行在同一台机器上。
当多个 Web 客户端通过 apache 时,缓存工作正常。它们都从缓存中读取,任何更新都会使缓存失效。但是,当 python 程序/脚本使用 django(具有 johnny 配置的相同 settings.py)从数据库读取时,它不会从缓存中读取,因此该程序所做的任何更新都不会影响缓存。这让我不得不让 Web 客户端从缓存中读取陈旧的数据。
我在 johnny cache 的文档中没有找到与此相关的任何内容。对这种情况有什么想法吗?
我正在使用 johnny 缓存 0.3.3、django 1.2.5 和 python 2.7。
编辑: 要回答评论中的一个问题,我以这种方式从脚本中的数据库中读取-
>>> cmp = MyModelClass.objects.get(id=1)
>>> cmp.cust_field_2
u'aaaa'
我知道它不会从缓存中读取,因为我通过触发更新 sql 语句直接更新表,并且更新的值不会反映在我的 Web 客户端中,因为它仍然从缓存中读取。而当我使用 MyModelClass.objects.get(id=1) 重新获取对象时,我的脚本会显示更新的值
谢谢,