广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php服务缓存加速
  • 180
分享到

php服务缓存加速

2024-04-02 19:04:59 180人浏览 泡泡鱼
摘要

PHP服务加速缓存优化    php缓存原理:        当客户端请求一个PHP程序时,服务器的PHP引擎会解析改PHP程序,并将其编译为特定

PHP服务加速缓存优化

    php缓存原理:

        当客户端请求一个PHP程序时,服务器的PHP引擎会解析改PHP程序,并将其编译为特定的操作码(Operate Code 简称 opcode),

    改文件是执行PHP代码后的一种二进制表示形式。默认情况下,这个编译好的操作码文件由PHP引擎执行后丢弃。而操作码缓存的原理:

    将编译后的操作码保存下来,并放到共享内存中,下一次调用PHP时重用。(节省了PHP引擎的编译时间)

    LA(N)MP环境PHP缓存加速器的原理:

    1)apache(Nginx)接收到客户端的PHP程序访问请求。

    2)apache(nginx)把程序传递给PHP处理模块libphp5.so(php的FCGI--php-fpm)进程。

    3)PHP引擎(php-fpm进程)读取磁盘上的PHP文件,并将器加载到内存中解析。

    4)PHP处理模块libphp5.so(php解析器php.ini)将PHP源码编译成cpdode,把cpcode缓存起来。

    5)apache(nginx)接收到客户端的请求后,PHP引擎直接读取opcode文件。如果没有找到则重复1-4步。建立缓存。

补充知识:

    locale 计算机软件运行的语言环境:

        # locale

        LANG=en_US.UTF-8             

        LC_CTYPE="en_US.UTF-8"

        LC_NUMERIC="en_US.UTF-8"

        LC_TIME="en_US.UTF-8"

        LC_COLLATE="en_US.UTF-8"

        LC_MONETARY="en_US.UTF-8"

        LC_MESSAGES="en_US.UTF-8"

        LC_PAPER="en_US.UTF-8"

        LC_NAME="en_US.UTF-8"

        LC_ADDRESS="en_US.UTF-8"

        LC_TELEPHONE="en_US.UTF-8"

        LC_MEASUREMENT="en_US.UTF-8"

        LC_IDENTIFICATioN="en_US.UTF-8"

        LC_ALL=


locale 把按照所涉及到的使用习惯的各个方面分成12 大类,这12 个大类分别是:


    语言符号及其分类(LC_CTYPE)

    数字(LC_NUMBERIC)

    比较习惯(LC_COLLATE)

    时间显示格式(LC_TIME)

    货币单位(LC_MONETARY)

    信息主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES)

    行么书写方式(LC_NAME)

    地址书写方式(LC_ADDRESS)

    电话号码书写方式(LC_TELEPHONE)

    度量衡表达方式(LC_MEASUREMENT)

    默认纸张尺寸大小(LC_PAPER)

    对locale 自身包含信息的概述(LC_IDENTIFICATION)


而这些信息的配置通常放在/usr/share/i18n/locales 目录下。

    部分软件需求Perl.为了解决Perl的一些环境问题带来错误。可以通过修改环境变量来避免。

     # echo 'export LC_ALL=C' >> /etc/profile

     # tail  -1 /etc/profile

     # source /etc/profile

    安装Perl相关的软件依赖包  # yum install perl-devel 或 # yum install perl-CPAN

    安装 PHP XCache 缓存加速模块

        X Cache 把PHP程序编译后的数据(opcode)缓存到共享内存里,避免相同的程序重复编译。

        用户请求相同的PHP程序时,可以直接使用缓存中已编译好的数据,提高访问速度。

        # wget https://xcache.ligHttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.bz2 --no-check-certificate

        # tar jxvf xcache-3.2.0.tar.bz2

        # /application/php/bin/phpize 

    phpize 作用:用来扩展PHP扩展模块的,通过phpize可以建立PHP的外挂模块。

        提供软件包平台环境分析和编译安装的必须的工具

        #./configure --enable-xcache --with-php-config=/application/php/bin/php-config 

        # make

        # make install

        # ll /application/php5.5.38/lib/php/extensions/no-debug-non-zts-20121212/

        看看是否含有 xcache.so 表明 安装是否完成。

    安装数据库缓存及其它PHP扩展插件

        memcached缓存软件:mem内存 cache缓存。d 即daemon(服务器端进程模式服务)

        memcached分2部分:服务器端(memcached)和客户端(memcache)

    一般场景:数据存放在数据库中, WEB访问的时候,要不停的访问数据库。加入memcached好处:通过自身内存中缓存

    数据库的查询结果,减少数据库的访问次数,访问内存比访问硬盘效率要高。

    memcached的服务的工作步骤:

        1.先检查memcached服务的缓存中是否存在。如果存在直接返回请求数据

        2.memcached不存在数据,访问数据库

        3.数据库取出数据,返回给客户端

        4.同时把新取到的数据缓存一份给memcached服务缓存。备用。

    memcache 客户端PHP扩展插件(memcache2.2.7.tgz)

        # wget http://pecl.php.net/get/memcache-2.2.7.tgz

        # ./configure --enable-memcache --with-php-config=/application/php/bin/php-config

        # make

        # make install

        # ll /application/php5.5.38/lib/php/extensions/no-debug-non-zts-20121212/

        是否包含 memcache.so

    安装:PDO_Mysql扩展模块

    下载地址:# wget http://pecl.php.net/get/PDO_mysql-1.0.2.tgz

    一般在编译PHP的时候以参数的形式加入此模块:--with-pdo-mysql=mysqlnd

    如果源码包编译安装和前面的安装无异(略步骤)

        平台分析如下:

        # ./configure --with-php-config=/application/php/bin/php-config --with-pdo-mysql-mysql=/application/mysql

    安装图像处理程序及imagick 扩展模块

        安装图像软件:ImageMagick

        安装imagick模块

        # wget http://pecl.php.net/get/imagick-3.4.3.tgz

        # /application/php/bin/phpize

        # ./configure --with-php-config=/application/php/bin/php-config

    配置模块生效:修改php.ini文件。把加载模块的地址修改。

          extension_dir = "/application/php/lib/php/extensions/no-debug-non-zts-20121212"

          extension=memcache.so

          extension=imagick.so

    配置XCache 插件加速

        1.首先修改 xcache 自带的配置文件  xcache.ini ,然后将修改的文件添加到 php.ini(引擎文件)文件的后面

        # grep -vE "^;|^$" /data/xcache-3.2.0/xcache.ini > xcache.ini.bak

        其中主要修改:一下参数

        xcache.size  =               256M 

        xcache.count =                 2  

        xcache.ttl   =                86400 

        xcache.GC_interval =          3600 

        xcache.var_size  =            64M   


        **** xcache.size   非0表示启用缓存。后面的数值代表允许mmap(一种内存共享机制)的最大值

        xcache.count    官方推荐服务器CPU的个数   # grep -c processor /proc/cpuinfo(匹配CPU个数)

        xcache.ttl    ttl(time to live) 设定cache对象的生存期

        xcache.gc_interval      回收器扫描过期对象回收内存空间的时间间隔(如果设为0.则不回收,启动缓存必须开启回收)

        xcache.var_size        变量的缓存

        # cat xcache.ini.bak >> /application/php/lib/php.ini

        因为 XCache 使用共享内存作为存储空间,如果有必要可以调整共享内存大小参数。

        # tail /etc/sysctl.conf 

        kernel.msgmnb = 65536


        # Controls the maximum size of a message, in bytes

        kernel.msgmax = 65536


        # Controls the maximum shared segment size, in bytes

        kernel.shmmax = 68719476736


        # Controls the maximum number of shared memory segments, in pages

        kernel.shmall = 4294967296

        2.重新启动PHP查看xcache加载情况

        # pkill php-fpm

        # /application/php/sbin/php-fpm 

        # /application/php/bin/php -v

        PHP 5.5.38 (cli) (built: Feb  1 2017 22:43:58) 

        Copyright (c) 1997-2015 The PHP Group

        Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies

            with XCache v3.2.0, Copyright (c) 2005-2014, by mOo

            with XCache Cacher v3.2.0, Copyright (c) 2005-2014, by mOo

        3.配置web界面的查看xcache缓存加速信息。

            修改php.ini 文件中的

            xcache.admin.user = "mOo"    #把mOo 替换

            xcache.admin.pass = "md5 encrypted passWord"

            # 这里是利用md5算法生成加密串

            例如: 

            # echo -n '123456' | md5sum

            e10adc3949ba59abbe56e057f20f883e  -

            将内容替换成e10adc3949ba59abbe56e057f20f883e

php服务缓存加速

            引用xcache相关的页面;

            # cd /data/xcache-3.2.0

            # cp -a ./htdocs/ /application/nginx/html/blog/xadmin

            #  chown -R nginx.nginx /application/nginx/html/blog/xadmin

            # pkill php-fpm

            # /application/php/sbin/php-fpm 


    下面附上 :压测效果对比:(昨天为没有加入xcache缓存的数据,右边为加入xcache缓存效果)

php服务缓存加速

--结束END--

本文标题: php服务缓存加速

本文链接: https://www.lsjlt.com/news/36344.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php服务缓存加速
    PHP服务加速缓存优化    PHP缓存原理:        当客户端请求一个PHP程序时,服务器的PHP引擎会解析改PHP程序,并将其编译为特定...
    99+
    2022-10-18
  • WordPress速度优化-Nginx fastcgi_cache缓存加速
    高并发网站架构的核心原则其实就一句话“把所有的用户访问请求都尽量往前推“,即:能缓存在用户电脑本地的,就不要让他去访问CDN。 能缓存CDN服务器上的,就不要让CDN去访问源(静态服务器)了。能访...
    99+
    2022-06-12
    Nginx fastcgi_cache 缓存加速
  • 使用Memcache缓存技术,加速PHP应用的响应速度
    随着互联网的迅速发展,PHP应用的使用越来越广泛,但是在面对大量用户访问时,PHP应用的响应速度也会逐渐变慢,这对于用户体验和网站流量都会产生很大影响。为解决这个问题,我们可以使用Memcache缓存技术来加速PHP应用的响应速度。Memc...
    99+
    2023-05-16
    Memcache 缓存技术 PHP应用
  • CDN缓存加速如何设置
    设置CDN缓存加速需要按照以下步骤进行:1. 选择CDN提供商:选择一家可靠的CDN提供商。2. 注册并创建CDN账号:根据CDN提...
    99+
    2023-09-07
    CDN
  • PHP缓存技巧:使用数组和NumPy加速网站访问速度?
    PHP缓存技巧:使用数组和NumPy加速网站访问速度 随着互联网的快速发展,网站的访问速度已经成为了一个至关重要的问题。用户体验的好坏直接影响着网站的流量和收益。因此,网站开发人员需要寻找各种方法来优化网站的访问速度。本文将讨论一种PHP缓...
    99+
    2023-08-13
    缓存 数组 numpy
  • CDN与缓存加速有什么区别
    本篇内容介绍了“CDN与缓存加速有什么区别”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!对于cdn加速可能网站的经营者们都不是陌生,它是内容...
    99+
    2023-06-10
  • 如何通过PHP开发缓存提升网页加载速度
    如何通过PHP开发缓存提升网页加载速度在现今互联网高速发展的时代,网页的加载速度对于用户体验尤为重要。而PHP作为一种流行的服务器端脚本语言,可以通过缓存技术来提高网页的加载速度。本文将介绍如何使用PHP开发缓存来提升网页加载速度,并提供一...
    99+
    2023-11-07
    缓存 开发 PHP
  • 如何使用PHP开发缓存优化图片加载速度
    如何使用PHP开发缓存优化图片加载速度随着互联网的快速发展,网页加载速度成为用户体验的重要因素之一。而图片加载速度是影响网页加载速度的重要因素之一。为了加速图片的加载,我们可以使用PHP开发缓存来优化图片加载速度。本文将介绍如何使用PHP开...
    99+
    2023-11-08
    图片加载 优化技巧 PHP缓存
  • 如何在 Unix 环境中使用 PHP 容器来加速缓存?
    在现代 Web 开发中,缓存是一个非常重要的概念。它可以大大提高网站的性能,减少服务器的负载,并提高用户体验。在 Unix 环境中,使用 PHP 容器来加速缓存是一种非常有效的方法。在本文中,我们将介绍如何使用 PHP 容器来加速缓存。 首...
    99+
    2023-10-24
    容器 unix 缓存
  • PHP异步协程开发:加速数据缓存与读写操作
    PHP异步协程开发:加速数据缓存与读写操作在实际应用开发中,数据缓存和读写操作是常见的性能瓶颈。为了提高系统效率和用户体验,可以采用PHP异步协程技术来加速这些操作。本文将介绍PHP异步协程的基本概念和原理,并提供具体代码示例。一、异步协程...
    99+
    2023-12-18
    缓存 异步 协程
  • 你知道吗?Go 存储可以用来加速 Django 缓存!
    Django 是一款流行的 Python Web 框架,它提供了强大的缓存系统来提高网站的性能。但是在高并发的情况下,Django 缓存系统的性能可能会受到限制。那么有没有一种方法可以提高 Django 缓存的性能呢?答案是肯定的,Go ...
    99+
    2023-11-08
    存储 django 缓存
  • 能否同时使用PHP缓存和JavaScript实时加速您的网站?
    随着互联网的发展,网站的速度越来越受到重视。快速的加载速度不仅可以提高用户体验,还可以提高搜索引擎排名。在提高网站速度的过程中,使用缓存和JavaScript实时加速是两种常见的方法。那么,能否同时使用PHP缓存和JavaScript实时加...
    99+
    2023-09-22
    缓存 javascript 实时
  • 如何在Python中使用缓存加快数据加载速度?
    随着数据量的不断增加,数据加载速度成为了一个非常重要的问题。特别是在处理大型数据集时,长时间的等待和加载时间会让人感到非常不舒服。解决这个问题的一个有效方法是使用缓存技术来提高数据加载速度。缓存是一种将计算结果存储在内存中以便快速访问的技...
    99+
    2023-06-28
    load 缓存 开发技术
  • 加速WordPress技巧:Redis缓存输出的HTML页面
    Redis是一个高级的key-value存储系统,类似memcached,所有内容都存在内存中,因此每秒钟可以超过10万次GET操作。我下面提出的解决方案是在Redis中缓存所有输出的HTML 内容而无需再让WordPr...
    99+
    2022-06-12
    加速WordPress Redis缓存
  • 你的IDE速度够快吗?Go和Apache缓存可以帮你加速!
    作为一名程序员,我们每天都需要使用IDE进行开发,而IDE的速度对于我们的开发效率有着至关重要的影响。如果你的IDE速度不够快,那么你的工作效率就会受到很大的影响。本文将介绍如何使用Go和Apache缓存来加速你的IDE。 一、Go缓存 ...
    99+
    2023-11-12
    apache 缓存 ide
  • 如何在PHP中使用Memcached缓存技术提高图片的加载速度
    随着互联网的发展,网站的访问量越来越大,为了提高网站的性能和用户体验,缓存技术成为了必不可少的一部分。其中,Memcached是一种高性能的分布式缓存系统,广泛应用于互联网领域,特别适用于缓存大量的读操作。本文将介绍如何在PHP中使用Mem...
    99+
    2023-05-15
    PHP Memcached 缓存技术
  • 云服务器加速
    云服务器加速是指在云服务器平台上为用户提供加速服务,以提高用户访问网站、应用程序等服务时的速度和效率。云服务器加速通常包括以下几种功能: 数据加速:云服务器提供强大的多线BGP网络,以确保网站访问速度快,避免网站因网络拥堵而卡顿。 负载...
    99+
    2023-10-26
    服务器
  • PHP开发缓存的预热与预加载
    PHP开发缓存的预热与预加载,需要具体代码示例随着互联网和移动应用的快速发展,用户对于网站和应用的响应速度要求也越来越高。为了提升用户体验,缓存一直被广泛应用于网站和应用开发中。而在PHP开发中,缓存的预热和预加载是提升性能的重要环节。本文...
    99+
    2023-11-07
    预加载 缓存预热 PHP开发
  • 如何使用ASP数组缓存API加速你的网站?
    好的,以下是文章内容: 在开发和维护网站时,优化网站性能是一个非常重要的任务。一个缓慢的网站不仅会影响用户体验,还会降低搜索引擎的排名,从而导致流量减少。 在ASP.NET中,一个常见的性能优化技巧是使用数组缓存API。这个API允许你将一...
    99+
    2023-06-21
    数组 缓存 api
  • 如何在 Windows 上使用 NumPy 加速 Go 的缓存操作?
    缓存操作是大多数计算机程序的重要组成部分。在高负载场景下,缓存操作的性能往往是应用程序性能的瓶颈。为了提高缓存操作的性能,我们可以使用 NumPy 库,这是一个用于 Python 的开源数学库。在本文中,我们将介绍如何在 Windows ...
    99+
    2023-07-10
    缓存 windows numy
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作