你如何确认 django 正在使用 memcached?

How do you confirm django is using memcached?

我有一个 python django 网络服务器,我正在尝试使用 memcached 使其更快。

我已经下载并安装了 memcached 并启动了一个名为 virtual 的用户,如下所示:

/usr/local/bin/memcached -u virtual & 

在 django setting.py 上,我将 memcached 服务器设置为:

MEMCACHE_HOSTS = ['192.168.101.1:11211']

我可以做 telnet 192.168.101.1 11211 和统计,我确实在那里看到了一些统计数据等等。

我怎么知道我的 django 服务器是否使用了 memcached?有没有我可以查看的目录或一些文件可以确认?

感谢您的任何见解。

manage.py的内容:

#!/usr/bin/env python
import os
import sys

from django.core.management import execute_from_command_line


if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

从命令行:

phthon

from django.core.management import execute_from_command_line

当我这样做时:

from django.core.cache import cache

我收到这些错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib64/python2.6/site-packages/django/core/cache/__init__.py", line 69, in <module>
    if DEFAULT_CACHE_ALIAS not in settings.CACHES:
  File "/usr/local/lib64/python2.6/site-packages/django/conf/__init__.py", line 54, in __getattr__
    self._setup(name)
  File "/usr/local/lib64/python2.6/site-packages/django/conf/__init__.py", line 47, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

您可以在 Django 的 shell (python manage.py shell) 中测试缓存:

>>> from django.core.cache import cache
>>> cache.set('foo', 'bar', 600)
>>> cache.get('foo')
'bar'

如果cache.get() return是设定值,则表示缓存正在正常工作。否则会 return None.

另一种选择是使用 $ memcached -vv 启动 memcached,因为它会将所有缓存访问记录到终端。或者,您可以为 memcached 安装监控工具(即 memcache-top),并在使用您的应用程序时检查 memcached 中是否发生了某些事情。