如何在 Django 中使用 memcached?

Posted

技术标签:

【中文标题】如何在 Django 中使用 memcached?【英文标题】:How to use memcached in Django? 【发布时间】:2021-01-26 17:42:24 【问题描述】:

我已经看到在 Django 项目中使用 Memcached 的所有问题被认为是

本机支持的最快、最有效的缓存类型 姜戈

例如,

Why doesn't memcache work in my Django? How to configure Memcache for Django on Google cloud AppEngine? Django doesn't use memcached framework memcache on django is not working How to use memcached in django project? How do you confirm django is using memcached? Configuring memcached with django What steps are needed to implement memcached in a Django application? How to use memcached in django project?

那么,我们该如何使用它呢?

【问题讨论】:

【参考方案1】:

这个答案解释了如何在 Windows 10 上安装 Memcached,以及如何通过特定的客户端将它与 Django 集成。它使用 Memcached 1.4.4、Python 2.7 和 Django 1.11 进行了验证。

    在您的 Django 项目中,在 settings.py 下,在文件底部添加以下代码

    SESSIONS_ENGINE='django.contrib.sessions.backends.cache'
    
    CACHES = 
        'default': 
            'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
            'LOCATION': '127.0.0.1:11211',
        
    
    

    在您的虚拟环境处于活动状态的情况下安装适用于 Python 的 memcached 客户端 (python-memcached)

    pip install python-memcached
    

    使用以下下载链接之一下载 Memcached 并将其解压缩到特定文件夹

http://downloads.northscale.com/memcached-win32-1.4.4-14.zip http://downloads.northscale.com/memcached-win64-1.4.4-14.zip

    在终端或 PowerShell 中打开该文件夹位置并运行

    .\memcached.exe -h
    

你应该得到这样的东西

    运行以下命令(-m 表示您要专用的内存量,-vvv 表示非常详细)

    .\memcached.exe -m 512 -vvv
    

    在要使用缓存的视图中,在urls.py中指定就好

    from django.conf.urls import include, url
    from django.views.decorators.cache import cache_page
    
    from .views import IndexView
    
    urlpatterns = [
        url(r'^$', cache_page(60*60)(IndexView.as_view()), name="index"),
    ]
    

    转到 Django 项目,启动服务器,您的时间负载应该会得到更好的结果。

【讨论】:

您是否知道在可能发生自动缩放的 AWS Elastic Beanstalk 环境中实施这种方法是否是一个“好”的想法?在我的应用程序获得关注之前,我希望避免为 AWS Elasticache memcached 付费。 @Jarad 可能有助于考虑 this answer 和 this one

以上是关于如何在 Django 中使用 memcached?的主要内容,如果未能解决你的问题,请参考以下文章

Cache._cache.flush_all () 不工作,如何使用 django 和 memcached 清除缓存?

07.Django-缓存

07.Django-缓存

memcached简单介绍及在django中的使用

Django--缓存设置

django flask缓存memcache的key生成方法介绍