如何在 Django 中使用 Memcached?
动态网站提供交互式和自适应网站的事实是它们的计算,包括数据库查询、模板渲染和业务逻辑,以生成网站访问者看到的页面。这在处理开销方面比通常从系统服务器设置访问文件要昂贵得多。对于中到高流量的网站,减少尽可能多的开销至关重要。这就是缓存的用武之地。保存耗时计算的结果以便您不必再次执行它被称为缓存。
缓存机制需要很少的设置。具体来说,您必须告诉它缓存数据应存储在何处,无论是在数据库中、文件系统中还是内存中。这是一个关键的决定,它将影响缓存的性能,因为某些缓存比其他缓存快。缓存通常比文件系统或数据库缓存更快,因为它避免了访问文件系统或数据库的开销。
什么是 Memcached?
Memcached 是一种基于内存的缓存技术,最初由 Live Journal 创建用于管理大型负载,然后由 Danga Interactive 开源。Slashdot 和维基百科等网站利用它来大幅提高网站性能,减少数据库访问。您可以在 http://danga.com/memcached/ 免费获取 Memcached。它作为守护进程运行,并获得一定量的内存。其主要功能是提供用户界面,用于向缓存添加、检索和删除数据。由于所有数据都保存在内存中,因此没有数据库或存储开销。
安装 Memcached 后,您需要安装 Memcached 的 Python 绑定,这些绑定未包含在 Django 中。这些绑定包含在 memcache.py Python 模块中,可以在以下链接找到 http://www.tummy.com/Community/software/python-memcached/
如何在 Django 中设置 Memcached?
要设置缓存首选项,可以更改 settings.py 文件中 CACHE_BACKEND 设置中的数据。如果开发人员选择使用缓存并且未指定 CACHE_BACKEND,则默认情况下 Django 将使用 :/// 符号。
可以通过将 CACHE_BACKEND 设置为 memcached://ip:port/ 来在 Django 中使用 Memcached。这里 ip 是 Memcached 守护进程的 IP 地址,port 是 Memcached 正在运行的端口。
Django 项目的本地主机在 127.0.0.1 上运行。在以下示例中,memcached 在同一 IP 地址上运行,端口为 1109
CACHE_BACKEND = 'memcached://127.0.0.1:1109/'
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache', 'LOCATION': '127.0.0.1:1109', } }
Memcached 的优势
Memcached 的主要优势在于,它可以在多台服务器上运行缓存。这意味着 memcached 守护进程在多台机器上运行,并且所有在多台机器上运行的程序都将假定它们正在使用单个缓存。
这消除了为每台机器复制缓存值的需要。此功能可以按以下方式使用。
CACHE_BACKEND = 'memcached://172.15.25.212:1108;172.16.24.209:1109/'
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.PyMemcacheCache', 'LOCATION': [ '172.15.25.212:1108', ‘172.16.24.209:1109’ } }
Memcached 的缺点
基于内存的缓存的主要缺点是它是临时的。如果服务器崩溃,其中存储的所有数据都将消失。因此,任何和所有基于缓存的存储都是临时的,不应成为您唯一的存储解决方案。
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP