我正在测试使用memcached来缓存django视图.如何判断memcached是否实际缓存了Linux命令行中的任何内容?
我知道这个问题很老,但这是用django测试memcached的另一个有用的方法:
正如@Jacob所提到的,你可以在非常详细的模式下启动memcached(而不是作为守护进程):
memcached -vv
要测试django缓存配置,可以使用低级缓存api.
首先,启动python解释器并加载你的django项目设置:
python manage.py shell
在shell中,您可以使用低级缓存api来测试您的memcache服务器:
from django.core.cache import cache cache.set('test', 'test value')
如果您的缓存配置正确,您应该在memcache中看到与此类似的输出:
<32 set :1:test 0 300 10 >32 STORED
您可以使用telnet和stats命令,例如:
# telnet localhost [memcacheport] Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. stats STAT pid 2239 STAT uptime 10228704 STAT time 1236714928 STAT version 1.2.3 STAT pointer_size 32 STAT rusage_user 2781.185813 STAT rusage_system 2187.764726 STAT curr_items 598669 STAT total_items 31363235 STAT bytes 37540884 STAT curr_connections 131 STAT total_connections 8666 STAT connection_structures 267 STAT cmd_get 27 STAT cmd_set 30694598 STAT get_hits 16 STAT get_misses 11 STAT evictions 0 STAT bytes_read 2346004016 STAT bytes_written 388732988 STAT limit_maxbytes 268435456 STAT threads 4 END
启动memcache不是作为守护进程而是正常的,所以只需运行memcached -vv
非常详细.你会看到get和sets进入memcache服务器的时间.
测试memcache工作的简单方法是在每个提供的页面上隐藏一个注释掉的时间戳.如果时间戳在对页面的多个请求中保持不变,则该页面由memcache缓存.
在Django设置中,我还设置了缓存机制以在文件系统上使用文件缓存(非常慢),但是在点击页面后我可以看到实际的缓存文件放在文件路径中,所以我可以确认缓存是在Django活跃.
我使用这两个步骤来解决我的缓存问题.我实际上没有在Django中正确启用缓存.更新的激活缓存方法是使用'django.middleware.cache.CacheMiddleware'中间件(不是具有两个中间件的中间件,必须是第一个/最后一个中间件设置.)
Memcached实际上可以自行写入日志文件,而不必手动重新启动它。的/etc/init.d/memcached
初始化脚本(/usr/lib/systemd/system/memcached.service
上EL7 +;啊)可以调用memcached的与指定的选项/etc/memcached.conf
(或/etc/sysconfig/memcached
上EL5 +)。这些选项包括详细程度和日志文件路径。
简而言之,您只需要在该conf / sysconfig文件中添加(或取消注释)这两行...
-vv logfile /path/to/log
...并使用service memcached restart
(EL3-7)或/etc/init.d/memcached restart
(debuntus)重新启动守护程序
然后,您可以使用传统方式(例如)监视此日志tail -f /path/to/log
。