찾다
php教程PHP源码提高Web应用程序的性能以及memcached

跳至

当我们想到存储在Web应用程序中,我们首先想到的通常是一个传统的数据库MySQL。这是伟大的长期存储和数据分析,但有许多短期需要一个更好的选择:memcached。这是页面请求和提高性能之间的信息存储位一个不错的选择。本文介绍我们会告诉你如何开始使用memcached PHP。

介绍

memcached是一个简单的界面让你店里的东西在存储服务器。这可以在同一台机器上运行作为Web服务器的可扩展性,但来自分布在多个服务器实例。所有你需要的是Memcached在后台运行,PHP提供了一个简单的界面和一个PECL的图书馆。基于Debian的Linux系统,这很容易:

    $ sudo apt-get install memcached
    $ sudo service memcached start
    $ sudo pecl install memcached
    $ sudo service httpd restart

复制代码


现在我们要提到有技术上的两个PHP库使用memcached。老图书馆被称为“set”和缺乏某些功能。新的“缓存”图书馆使用libmemcached和一般是首选。
PHP中的第一步是连接到服务器。连接可以持续跨越的要求,这是很好的性能。然后添加到服务器列表的需要。在这种情况下,我们将使用一个本地运行实例的默认端口:

    function get_memcached() {
        // Set a persistent connection ID
        $mc = new Memcached('webapp');
        // Set a short timeout (in milliseconds) so if the server goes down
        // it doesn't take down our site with it
        $mc->setOption(Memcached::OPT_CONNECT_TIMEOUT, 1000);
        if ( !$mc->getServerList() ) {
            if ( !$mc->addServer('localhost', 11211) ) {
                error_log('Could not add memcached server.');
                return false;
            }
        }
        return $mc;
    }

复制代码


现在你可以读写PHP变量与基于密钥的memcached你定义简单的功能。他们将序列化和反序列化,自动。你可以不喜欢写数据库连接或结果集的资源,但你可以将这些结果集阵列和存储这些。

数据存储

让我们说我们想存储列表的最近访问的URL的每个登录的用户。我们可以使用会话,但不工作的设备和它会尽快清除会话是消失。我们可以使用一个数据库,但这种数据的最可能我们的系统没有临界慢。使用memcached是容易的:

    $user_id = 123;  // The current user's ID复制代码

缓存

现在让我们通过缓存数据库结果真正提高您的Web应用程序。数据库查询通常是在服务器处理的最大瓶颈,从而避免重复查询在内存中缓存的结果可以提供巨大的性能增益。最简单的方法是查询只和主键的商店。通常最好是缓存的值被删除时,数据库的记录被更新,用户不会看到任何过时的价值观。

    function store_product($id, $name, $price) {
        // Create or update the product in the database
        $db = get_db();
        $qry = $db->prepare('REPLACE INTO product (id, name, price) VALUES (:id, :name, :price)');
        $qry->bindParam(':id', $id);
        $qry->bindParam(':name', $name);
        $qry->bindParam(':price', $price);
        $qry->execute();复制代码



注意事项

    与任何技术选择有局限性和注意事项:
    一个关键的最大长度是250个字节。把你的钥匙简短。
    默认的最大值的大小为1MB。这不是正确的地方来存储大的值。
    仓储不是锁定阅读或在数据库中的记录可以被锁定的写作方式。要知道,任何Web请求可以在任何时间更新任何价值。
    确保您有足够的RAM memcached服务器合并。


下一步

    你能越做memcached:
    缓存的值可以超时。这是有用的数据时,应该被缓存一段时间而不是手工删除。
    简单的递增和递减的方法有利于保持快速柜台之间的请求。

memcached配置正确,你可以分享许多编程语言编写的应用程序之间的数据。
给memcached一试。在合适的情况下这是一个非常简单而有效的最大化你的Web应用程序性能的解决方案。

                   

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경