iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP缓存技术的实例应用
  • 713
分享到

PHP缓存技术的实例应用

2023-06-17 14:06:08 713人浏览 独家记忆
摘要

本篇内容主要讲解“PHP缓存技术的实例应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php缓存技术的实例应用”吧!之前我们曾深入的探讨过PHP缓存技术,其中主要提到了数据缓存。数据缓存主要是

本篇内容主要讲解“PHP缓存技术的实例应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习php缓存技术的实例应用”吧!

之前我们曾深入的探讨过PHP缓存技术,其中主要提到了数据缓存。数据缓存主要是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据, 并把查询结果序列化后保存到文件中,以后同样的查询结果就直接从缓存表或文件中获得。

用的最广的例子看Discuz的搜索功能,把结果ID缓存到一个表中,下次搜索相同关键字时先搜索缓存表。

举个常用的方法,多表关联的时候,把附表中的内容生成数组保存到主表的一个字段中,需要的时候数组分解一下,这样的好处是只读一个表,坏处就是两个 数据同步会多不少步骤,数据库永远是瓶颈,用硬盘换速度,是这个的关键点。

页面缓存

每次访问页面的时候,都会先检测相应的缓存页面文件是否存在,如果不存在,就连接数据库,得到数据,显示页面并同时生成缓存页面文件,这样下次访问 的时候页面文件就发挥作用了。(模板引擎和网上常见的一些缓存类通常有此功能)

时间触发缓存

检查文件是否存在并且时间戳小于设置的过期时间,如果文件修改的时间戳比当前时间戳减去过期时间戳大,那么就用缓存,否则更新缓存。

内容触发缓存

当插入数据或更新数据时,强制更新缓存。

静态缓存

这里所说的静态缓存是指静态化,直接生成html或xml等文本文件,有更新的时候重生成一次,适合于不太变化的页面,这就不说了。

内存缓存

Memcached是高性能的,分布式的内存对象缓存系统,用于在动态应用中减少数据库负载,提升访问速度。

<?php $memcache = new Memcache;  $memcache->connect(&lsquo;localhost&rsquo;, 11211) or die (“Could not connect”);  $version = $memcache->getVersion();  echo “Server&rsquo;s version: “.$version.”\n”;  $tmp_object = new stdClass;  $tmp_object->str_attr = &lsquo;test&rsquo;;  $tmp_object->int_attr = 123;  $memcache->set(&lsquo;key&rsquo;, $tmp_object, false, 10) or die (“Failed to save data at the server”);  echo “Store data in the cache (data will expire in 10 seconds)\n”;  $get_result = $memcache->get(&lsquo;key&rsquo;);  echo “Data from the cache:\n”;  var_dump($get_result);  ?>

读库的例子:

<?php $sql = &lsquo;SELECT * FROM users&rsquo;;  $key = md5($sql);   //memcached 对象标识符  if ( !($datas = $mc->get($key)) ) {   //  在 memcached 中未获取到缓存数据,则使用数据库查询获取记录集   echo “n”.str_pad(&lsquo;Read datas from MySQL.&rsquo;, 60, &lsquo;_&rsquo;).”n”;  $conn = Mysql_connect(&lsquo;localhost&rsquo;, &lsquo;test&rsquo;, &lsquo;test&rsquo;);  mysql_select_db(&lsquo;test&rsquo;);  $result = mysql_query($sql);  while ($row = mysql_fetch_object($result))  $datas[] = $row;   //  将数据库中获取到的结果集数据保存到 memcached 中,以供下次访问时使用   $mc->add($key, $datas);  } else {  echo “n”.str_pad(&lsquo;Read datas from memcached.&rsquo;, 60, &lsquo;_&rsquo;).”n”;  }  var_dump($datas);  ?>

PHP的缓冲器

比如eaccelerator,apc,phpa,xcache等等。

MySQL缓存

这也算非代码级的,经典的数据库就是用的这种方式,看下面的运行时间,0.09xxx之类的。

[client]  &hellip;&hellip;  default-character-set=gbk default-storage-engine=MYISAM max_connections=600 max_connect_errors=500 back_log=200 interactive_timeout=7200 query_cache_size=64M &hellip;&hellip;  table_cache=512 &hellip;&hellip;  myisam_max_sort_file_size=100G myisam_max_extra_sort_file_size=100G myisam_sort_buffer_size=128M key_buffer_size=1024M read_buffer_size=512M &hellip;&hellip;  thread_concurrency=8

基于反向代理的Web缓存

Nginx,SQUID,mod_PRoxy(apache2以上又分为mod_proxy和mod_cache)

NGINX的例子:

<nginx.conf> #user  nobody;  worker_processes  4;  error_log  logs/error.log crit;  pid        logs/nginx.pid;  worker_rlimit_nofile 10240;  events {  use epoll;  worker_connections  51200;  }  Http {  include       mime.types;  default_type  application/octet-stream;  sendfile    on;  keepalive_timeout 65;  tcp_nodelay on;  # server pool  upstream bspfrontsvr {  server 10.10.10.224:80   weight=1;  server 10.10.10.221:80   weight=1;  }   upstream bspimgsvr {  server 10.10.10.201:80   weight=1;  }   upstream bspstylesvr {  server 10.10.10.202:80   weight=1;  }   upstream bsphelpsvr {  server 10.10.10.204:80   weight=1;  }   upstream bspwsisvr {  server 10.10.10.203:80   weight=1;  }   upstream bspadminsvr {  server 10.10.10.222:80   weight=1;  }   upstream bspbuyersvr {  server 10.10.10.223:80   weight=1;  }   upstream bspsellersvr {  server 10.10.10.225:80   weight=1;  }  upstream  bsploginsvr  {  server 10.10.10.220:443  weight=1;  }  upstream  bspreGIStersvr  {  server 10.10.10.220:80  weight=1;  }  log_fORMat  test_com  &lsquo;$remote_addr &ndash; $remote_user [$time_local] “$request” &lsquo;  &lsquo;$status $body_bytes_sent “$http_referer” “$http_user_agent” &lsquo;;  #&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&ndash;  #img.test.com  server {  listen       10.10.10.230:80;  server_name  img.test.com;  location / {  proxy_pass      http://bspimgsvr;  include         proxy_setting.conf;  }  access_log  logs/img.log  test_com;  }   #style.test.com  server {  listen       10.10.10.230:80;  server_name  style.test.com;  location / {  proxy_pass      http://bspstylesvr;  include         proxy_setting.conf;  }  access_log  logs/style.log  test_com;  }   #help.test.com  server {  listen       10.10.10.230:80;  server_name  help.test.com;  location / {  proxy_pass      http://bsphelpsvr;  include         proxy_setting.conf;  }  access_log  logs/help.log  test_com;  }   #admin.test.com  server {  listen       10.10.10.230:80;  server_name  admin.test.com;  location / {  proxy_pass      http://bspadminsvr;  include         proxy_setting.conf;  }  access_log  logs/admin.log  test_com;  }   #buyer.test.com  server {  listen       10.10.10.230:80;  server_name  buyer.test.com;  location / {  proxy_pass      http://bspbuyersvr;  include         proxy_setting.conf;  }  access_log  logs/buyer.log  test_com;  }
#seller.test.com  server {  listen       10.10.10.230:80;  server_name  seller.test.com;  location / {  proxy_pass      http://bspsellersvr;  include         proxy_setting.conf;  }  access_log  logs/seller.log  test_com;  }  #wsi.test.com  server {  listen       10.10.10.230:80;  server_name  wsi.test.com;  location / {  proxy_pass      http://bspwsisvr;  include         proxy_setting.conf;  }  access_log  logs/wsi.log  test_com;  }  #www.test.com  server {  listen       10.10.10.230:80;  server_name  www.test.com   *.test.com;  location ~ ^/NginxStatus/ {  stub_status on;  access_log off;  }  location / {  proxy_pass      http://bspfrontsvr;  include         proxy_setting.conf;  }  access_log  logs/www.log  test_com;  error_page   500 502 503 504  /50x.html;  location = /50x.html {  root   html;  }  }  #login.test.com  server {  listen       10.10.10.230:443;  server_name  login.test.com;  ssl                  on;  ssl_certificate      cert.pem;  ssl_certificate_key  cert.key;  ssl_session_timeout  5m;  ssl_protocols  SSLv2 SSLv3 TLSv1;  ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;  ssl_prefer_server_ciphers   on;  location / {  proxy_pass        https://bsploginsvr;  include         proxy_setting.conf;  }  access_log  logs/login.log  test_com;  }  #login.test.com for register  server {  listen       10.10.10.230:80;  server_name  login.test.com;  location / {  proxy_pass        http://bspregistersvr;  include         proxy_setting.conf;  }  access_log  logs/register.log  test_com;  }   }  <conf/proxy_setting.conf> proxy_redirect          off;  proxy_set_header        Host $host;  proxy_set_header        X-Real-IP $remote_addr;  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;  client_max_body_size    10m;  client_body_buffer_size 128k;  proxy_connect_timeout   90;  proxy_send_timeout      90;  proxy_read_timeout      90;  proxy_buffer_size       4k;  proxy_buffers           4 32k;  proxy_busy_buffers_size 64k;  proxy_temp_file_write_size 64k;

mod_proxy的例子:

<VirtualHost *> ServerName www.zxsv.com  ServerAdmin admin@zxsv.com  # reverse proxy setting  ProxyPass / http://www.zxsv.com:8080/  ProxyPassReverse / http://www.zxsv.com:8080/  # cache dir root  CacheRoot “/var/www/proxy”  # max cache storage  CacheSize 50000000  # hour: every 4 hour  CacheGCInterval 4  # max page expire time: hour  CacheMaxExpire 240  # Expire time = (now &ndash; last_modified) * CacheLastModifiedFactor  CacheLastModifiedFactor 0.1  # defalt expire tag: hour  CacheDefaultExpire 1  # force complete after precent of content retrived: 60-90%  CacheForceCompletion 80  CustomLog /usr/local/apache/logs/dev_access_log combined  </VirtualHost>

到此,相信大家对“PHP缓存技术的实例应用”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: PHP缓存技术的实例应用

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

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

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

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

下载Word文档
猜你喜欢
  • PHP缓存技术的实例应用
    本篇内容主要讲解“PHP缓存技术的实例应用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP缓存技术的实例应用”吧!之前我们曾深入的探讨过PHP缓存技术,其中主要提到了数据缓存。数据缓存主要是...
    99+
    2023-06-17
  • Memcache缓存技术在PHP应用中的使用例子
    Memcache缓存是一种高效的缓存技术,使用它可以提高PHP应用的性能和响应速度。在实际应用中,Memcache缓存有着各种各样的使用例子。一、减少数据库压力在PHP应用中,如果频繁地读取、写入数据库,会对数据库造成很大的压力,导致读取和...
    99+
    2023-05-19
    Memcache 缓存技术 PHP应用
  • PHP中的缓存技术
    随着互联网的不断发展,Web应用程序越来越普及,而这些应用程序的性能和响应速度越来越关键。为了提高Web应用程序的性能,缓存技术成为了一个必不可少的工具。PHP作为一种常用的Web编程语言,也提供了许多缓存技术来优化Web应用程序的性能。本...
    99+
    2023-05-24
    缓存技术 PHP 缓存 PHP 性能优化
  • Memcache缓存技术在PHP项目中的应用和实践
    Memcache是一种开源的、分布式的缓存技术。它通过将数据存储在内存中,极大地提高了数据的访问速度,从而提升了网站的性能和响应速度。在PHP项目中,Memcache缓存技术也被广泛应用,并且取得了很好的效果。本篇文章将深入探讨Memcac...
    99+
    2023-05-17
    Memcache 缓存技术 PHP项目
  • PHP如何实现缓存技术
    这篇文章给大家分享的是有关PHP如何实现缓存技术的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。PHP,一门最近几年兴起的Web设计脚本语言,由于它的强大和可伸缩性,近几年来得到长足的发展,PHP相比传统的ASP网...
    99+
    2023-06-17
  • 使用Memcache缓存技术,加速PHP应用的响应速度
    随着互联网的迅速发展,PHP应用的使用越来越广泛,但是在面对大量用户访问时,PHP应用的响应速度也会逐渐变慢,这对于用户体验和网站流量都会产生很大影响。为解决这个问题,我们可以使用Memcache缓存技术来加速PHP应用的响应速度。Memc...
    99+
    2023-05-16
    Memcache 缓存技术 PHP应用
  • PHP中怎么实现缓存技术
    这篇文章主要为大家展示了“PHP中怎么实现缓存技术”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“PHP中怎么实现缓存技术”这篇文章吧。全页面静态化缓存也就是将页面全部生成html静态页面,用户访...
    99+
    2023-06-16
  • PHP如何实现web缓存技术
    本篇内容介绍了“PHP如何实现web缓存技术”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、Web缓存的概念Web缓存是指将已被访问过或预...
    99+
    2023-07-05
  • Path缓存技术在PHP开发中的应用探究
    在Web开发中,缓存技术是提高性能和响应速度的重要手段之一。在PHP开发中,Path缓存技术是一种非常实用的缓存技术,可以显著提高Web应用的性能和响应速度。本文将探究Path缓存技术在PHP开发中的应用。 一、什么是Path缓存技术 P...
    99+
    2023-08-26
    path 开发技术 缓存
  • PHP-FPM性能提高实践:缓存技术的应用与优化
    引言:随着互联网技术的不断发展,PHP作为一种广泛应用的编程语言,在网站和应用程序开发中扮演着重要的角色。然而,由于PHP是一种脚本语言,其性能相对较低,容易造成对服务器的过大压力。为了提高PHP-FPM性能,我们可以采用缓存技术来优化代码...
    99+
    2023-10-21
    php-fpm 缓存技术 性能提高
  • PHP中的缓存技术有什么用
    这篇文章主要讲解了“PHP中的缓存技术有什么用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中的缓存技术有什么用”吧!缓存是提高性能最好的方式,例如减少网络I/O、减少磁盘I/O 等,...
    99+
    2023-06-20
  • ASP技术如何应用于实时缓存中?
    随着互联网的发展,数据量的增加,实时数据的处理越来越成为重要的问题。实时数据的处理需要高效的数据缓存技术,而ASP技术正是其中的一种重要的缓存技术。 ASP技术是一种动态网页技术,它可以将动态数据储存在缓存中,这样可以加快数据的传输速度,...
    99+
    2023-11-15
    leetcode 实时 缓存
  • php常用缓存技术有哪些
    在PHP中,常用的缓存技术有以下几种:1. 文件缓存:将数据以文件的形式存储在服务器的文件系统中。可以使用PHP的文件操作函数(如f...
    99+
    2023-08-24
    php
  • 探索缓存技术在 PHP 函数性能中的应用
    缓存技术在 php 函数性能中应用广泛,主要通过将频繁访问的数据缓存至内存或文件中提升函数执行速度。常见的 php 缓存技术有:内存缓存:将数据存储在服务器内存中,访问速度极快。文件缓存...
    99+
    2024-04-12
    缓存 php redis
  • PHP缓存技术在Laravel框架中的应用有哪些?
    在现代Web应用中,数据缓存是提高Web应用性能的重要手段之一。对于使用PHP语言开发的Web应用程序来说,PHP缓存技术是一种常见的应用场景。在Laravel框架中,PHP缓存技术也被广泛应用。本文将介绍Laravel框架中常用的PHP...
    99+
    2023-09-27
    缓存 laravel 接口
  • 如何使用Memcache缓存技术提高PHP应用的响应时间
    随着Web应用程序的不断发展,网站访问量越来越大,PHP应用程序对数据库的访问也越来越频繁。这样一来,很容易在负载峰值期间出现问题,甚至可能导致服务器崩溃。为了解决这些问题,我们可以使用缓存技术来提高PHP应用程序的性能和响应时间。为什么选...
    99+
    2023-05-18
    Memcache 缓存技术 PHP应用
  • Memcache缓存技术对于PHP文件缓存的作用和实现方法
    随着互联网应用程序的不断发展,对于Web网站的访问量和数据处理量的提高,程序的性能变得越来越重要。而程序性能的优化,对于一个高流量的网站来说,是至关重要的。而Web应用性能提高的关键就在于缓存。Memcache缓存技术是一个为提高Web应用...
    99+
    2023-05-17
    Memcache 缓存技术 PHP文件缓存
  • PHP缓存技术的简单介绍
    本篇内容介绍了“PHP缓存技术的简单介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php缓存技术的应用时相当普遍的,也许有些人还对这项技...
    99+
    2023-06-17
  • PHP中的缓存技术是什么?
    PHP中的缓存技术是什么?PHP是一种在Web开发中广泛使用的编程语言。它强大而灵活,但有时也会遇到性能方面的问题。这时,缓存技术就可以派上用场了。本文将重点探讨PHP中的缓存技术,包括什么是缓存,为什么需要缓存,缓存的种类以及如何在PHP...
    99+
    2023-05-14
    缓存 技术 PHP
  • PHP中的缓存技术是什么
    本篇内容介绍了“PHP中的缓存技术是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!缓存是提高性能最好的方式,例如减少网络I/O、减少磁盘...
    99+
    2023-06-20
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作