浅析Python的Django框架中的Memcached
动态网站的问题就在于它是动态的。 也就是说每次用户访问一个页面,服务器要执行数据库查询,启动模板,执行业务逻辑以及最终生成一个你所看到的网页,这一切都是动态即时生成的。 从处理器资源的角度来看,这是比较昂贵的。
对于大多数网络应用来说,过载并不是大问题。 因为大多数网络应用并不是washingtonpost.com或Slashdot;它们通常是很小很简单,或者是中等规模的站点,只有很少的流量。 但是对于中等至大规模流量的站点来说,尽可能地解决过载问题是非常必要的。
这就需要用到缓存了。
缓存的目的是为了避免重复计算,特别是对一些比较耗时间、资源的计算。 下面的伪代码演示了如何对动态页面的结果进行缓存。
given a URL, try finding that page in the cache if the page is in the cache: return the cached page else: generate the page save the generated page in the cache (for next time) return the generated page
为此,Django提供了一个稳定的缓存系统让你缓存动态页面的结果,这样在接下来有相同的请求就可以直接使用缓存中的数据,避免不必要的重复计算。 另外Django还提供了不同粒度数据的缓存,例如: 你可以缓存整个页面,也可以缓存某个部分,甚至缓存整个网站。
Django也和”上游”缓存工作的很好,例如Squid(http://www.squid-cache.org)和基于浏览器的缓存。 这些类型的缓存你不直接控制,但是你可以提供关于你的站点哪部分应该被缓存和怎样缓存的线索(通过HTTP头部)给它们
设定缓存
缓存系统需要一些少量的设定工作。 也就是说,你必须告诉它缓存的数据应该放在哪里,在数据库中,在文件系统,或直接在内存中。 这是一个重要的决定,影响您的高速缓存的性能,是的,有些类型的缓存比其它类型快。
缓存设置在settings文件的 CACHE_BACKEND中。 这里是一个CACHE_BACKEND所有可用值的解释。
内存缓冲
Memcached是迄今为止可用于Django的最快,最有效的缓存类型,Memcached是完全基于内存的缓存框架,最初开发它是用以处理高负荷的LiveJournal.com随后由Danga Interactive公司开源。 它被用于一些站点,例如Facebook和维基百科网站,以减少数据库访问,并大幅提高站点的性能。
Memcached是免费的(http://danga.com/memcached)。它作为一个守护进程运行,并分配了特定数量的内存。 它只是提供了添加,检索和删除缓存中的任意数据的高速接口。 所有数据都直接存储在内存中,所以没有对使用的数据库或文件系统的开销。
在安装了Memcached本身之后,你将需要安装Memcached Python绑定,它没有直接和Django绑定。 这两个可用版本。 选择和安装以下模块之一:
最快的可用选项是一个模块,称为cmemcache,在http://gijsbert.org/cmemcache。
如果您无法安装cmemcache,您可以安装python - Memcached,在ftp://ftp.tummy.com/pub/python-memcached/。如果该网址已不再有效,只要到Memcached的网站http://www.danga.com/memcached/),并从客户端API完成Python绑定。
若要使用Memcached的Django,设置CACHE_BACKEND到memcached:/ / IP:port/,其中IP是Memcached的守护进程的IP地址,port是Memcached运行的端口。
在这个例子中,Memcached运行在本地主机 (127.0.0.1)上,端口为11211:
CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
Memcached的一个极好的特性是它在多个服务器间分享缓存的能力。 这意味着您可以在多台机器上运行Memcached的守护进程,该程序会把这些机器当成一个单一缓存,而无需重复每台机器上的缓存值。 要充分利用此功能,请在CACHE_BACKEND里引入所有服务器的地址,用分号分隔。
这个例子中,缓存在运行在IP地址为172.19.26.240和172.19.26.242,端口号为11211的Memcached实例间分享:
CACHE_BACKEND = 'memcached://172.19.26.240:11211;172.19.26.242:11211/'
这个例子中,缓存在运行在172.19.26.240(端口11211),172.19.26.242(端口11212),172.19.26.244(端口11213)的Memcached实例间分享:
CACHE_BACKEND = 'memcached://172.19.26.240:11211;172.19.26.242:11212;172.19.26.244:11213/'
最后有关Memcached的一点是,基于内存的缓存有一个重大的缺点。 由于缓存的数据存储在内存中,所以如果您的服务器崩溃,数据将会消失。 显然,内存不是用来持久化数据的,因此不要把基于内存的缓存作为您唯一的存储数据缓存。 毫无疑问,在Django的缓存后端不应该用于持久化,它们本来就被设计成缓存的解决方案。但我们仍然指出此点,这里是因为基于内存的缓存是暂时的。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











브라우저는 어떤 폴더에 동영상을 캐시하나요? 우리는 매일 인터넷 브라우저를 사용하다 보면 유튜브에서 뮤직비디오를 보거나 넷플릭스에서 영화를 보는 등 다양한 온라인 동영상을 자주 보게 됩니다. 이러한 비디오는 나중에 다시 재생할 때 빠르게 로드할 수 있도록 로드 프로세스 중에 브라우저에 의해 캐시됩니다. 그렇다면 문제는 캐시된 동영상이 실제로 어느 폴더에 저장되어 있느냐는 것입니다. 브라우저마다 캐시된 비디오 폴더를 다른 위치에 저장합니다. 아래에서는 몇 가지 일반적인 브라우저와 해당 브라우저를 소개합니다.

DNS(DomainNameSystem)는 인터넷에서 도메인 이름을 해당 IP 주소로 변환하는 데 사용되는 시스템입니다. Linux 시스템에서 DNS 캐싱은 도메인 이름과 IP 주소 간의 매핑 관계를 로컬로 저장하는 메커니즘으로, 도메인 이름 확인 속도를 높이고 DNS 서버의 부담을 줄일 수 있습니다. DNS 캐싱을 사용하면 시스템이 매번 DNS 서버에 쿼리 요청을 보낼 필요 없이 이후에 동일한 도메인 이름에 액세스할 때 IP 주소를 신속하게 검색할 수 있으므로 네트워크 성능과 효율성이 향상됩니다. 이 문서에서는 Linux에서 DNS 캐시를 보고 새로 고치는 방법과 관련 세부 정보 및 샘플 코드에 대해 설명합니다. DNS 캐싱의 중요성 Linux 시스템에서 DNS 캐싱은 중요한 역할을 합니다. 그 존재

제목: HTML 파일의 캐싱 메커니즘 및 코드 예제 소개: 웹 페이지를 작성할 때 브라우저 캐싱 문제에 자주 직면합니다. 이 기사에서는 HTML 파일의 캐싱 메커니즘을 자세히 소개하고 독자가 이 메커니즘을 더 잘 이해하고 적용할 수 있도록 몇 가지 특정 코드 예제를 제공합니다. 1. 브라우저 캐싱 원리 브라우저에서는 웹페이지에 액세스할 때마다 먼저 캐시에 웹페이지 복사본이 있는지 확인합니다. 있는 경우 웹페이지 콘텐츠를 캐시에서 직접 가져옵니다. 이것이 브라우저 캐싱의 기본 원칙입니다. 브라우저 캐싱 메커니즘의 이점

CPU(중앙 처리 장치), 메모리(Random Access Memory), 캐시 사이에는 긴밀한 상호 작용이 있으며, 이들은 함께 컴퓨터 시스템의 중요한 구성 요소를 형성합니다. 이들 간의 조정은 컴퓨터의 정상적인 작동과 효율적인 성능을 보장합니다. CPU는 컴퓨터의 두뇌로서 다양한 명령 실행과 데이터 처리를 담당합니다. 메모리는 데이터와 프로그램을 임시로 저장하여 빠른 읽기 및 쓰기 액세스 속도를 제공하고, 캐시는 버퍼링 역할을 하여 데이터 액세스 속도를 높입니다. 속도와 향상 컴퓨터의 CPU는 컴퓨터의 핵심 구성요소로 각종 명령, 산술연산, 논리연산 등을 수행하는 역할을 담당합니다. 컴퓨터의 '브레인'이라 불리며, 데이터를 처리하고 작업을 수행하는 데 중요한 역할을 합니다. 메모리는 컴퓨터에서 중요한 저장 장치이다.

PHPAPCu(php 캐시 대체)는 PHP 애플리케이션을 가속화하는 opcode 캐시 및 데이터 캐시 모듈입니다. 잠재력을 최대한 활용하려면 고급 기능을 이해하는 것이 중요합니다. 1. 일괄 작업: APCu는 동시에 많은 수의 키-값 쌍을 처리할 수 있는 일괄 작업 방법을 제공합니다. 이는 대규모 캐시 삭제 또는 업데이트에 유용합니다. //일괄적으로 캐시 키 가져오기 $values=apcu_fetch(["key1","key2","key3"]) //일괄적으로 캐시 키 지우기 apcu_delete(["key1","key2","key3"]) ;2 .캐시 만료 시간 설정: APCu를 사용하면 캐시 항목의 만료 시간을 설정하여 지정된 시간 후에 자동으로 만료되도록 할 수 있습니다.

브라우저 캐시 동영상을 내보내는 방법 인터넷의 급속한 발전으로 동영상은 사람들의 일상생활에서 없어서는 안 될 부분이 되었습니다. 웹을 탐색할 때 저장하거나 공유하고 싶은 비디오 콘텐츠를 자주 접하지만 비디오 파일이 브라우저의 캐시에만 존재할 수 있기 때문에 비디오 파일의 소스를 찾을 수 없는 경우가 있습니다. 그렇다면 브라우저 캐시에서 비디오를 어떻게 내보내나요? 이 기사에서는 몇 가지 일반적인 방법을 소개합니다. 먼저 브라우저 캐시라는 개념을 명확히 해야 합니다. 브라우저 캐시는 브라우저에서 사용자 경험을 개선하는 데 사용됩니다.

Django 프레임워크를 사용하여 PyCharm에서 프로젝트를 생성하는 방법에 대한 팁, 특정 코드 예제가 필요합니다. Django는 웹 애플리케이션의 신속한 개발을 위한 일련의 도구와 기능을 제공하는 강력한 Python 웹 프레임워크입니다. PyCharm은 Python으로 개발된 통합개발환경(IDE)으로, 개발 효율성을 높이기 위한 일련의 편리한 기능과 도구를 제공합니다. Django와 PyCharm을 결합하면 프로젝트 생성이 더 빠르고 편리해집니다.

SpringBoot는 사용 용이성과 빠른 개발로 잘 알려진 인기 있는 Java 프레임워크입니다. 그러나 애플리케이션의 복잡성이 증가함에 따라 성능 문제로 인해 병목 현상이 발생할 수 있습니다. springBoot 애플리케이션을 바람처럼 빠르게 생성할 수 있도록 이 문서에서는 몇 가지 실용적인 성능 최적화 팁을 공유합니다. 시작 시간 최적화 애플리케이션 시작 시간은 사용자 경험의 핵심 요소 중 하나입니다. SpringBoot는 캐싱 사용, 로그 출력 감소, 클래스 경로 검색 최적화 등 시작 시간을 최적화하는 여러 가지 방법을 제공합니다. application.properties 파일에 spring.main.lazy-initialization을 설정하면 됩니다.
