缓存

对于网络作者和网站管理员的缓存教程

  1. 什么是网络缓存?人们为什么要使用它们?
  2. Web缓存的种类
    1. 浏览器缓存
    2. 代理缓存
  3. Web 缓存对我来说不是坏事吗?我为什么要帮助他们?
  4. Web 缓存的工作原理
  5. 如何(以及如何不)控制缓存
    1. HTML 元标记与 HTTP 标头
    2. Pragma HTTP 标头(以及为什么它们不起作用)
    3. 使用 Expires HTTP 标头控制新鲜度
    4. 缓存控制 HTTP 标头
    5. 验证器和验证
  6. 构建缓存感知站点的技巧
  7. 编写缓存感知脚本
  8. 经常问的问题
  9. 实施说明 - Web 服务器
  10. 实施说明——服务器端脚本
  11. 参考资料和更多信息
  12. 关于本文档

什么是网络缓存?人们为什么要使用它们?

10 个最好的 WordPress 缓存插件来加速网站

如果加载时间超过三秒,57% 的访问者将离开您的网站——显然,网站速度对于用户体验至关重要。

安装 WordPress 缓存插件的站点所有者

有几种简单的方法可以加速您的 WordPress 站点,例如优化图像、购买CDN 服务以及本文的主题,即 WordPress 缓存插件。

如果你想要一种简单快捷的方法来优化你的 WordPress 网站的速度,数据缓存是首先要看的地方之一。首先,让我们定义什么是缓存及其重要性。然后,我们将探索一些可以为您简化甚至自动化该过程的插件。

请求时浏览器缓存 from memory cache 和 from disk cache 的依据是什么,哪些数据什么时候存放在 Memory Cache 和 Disk Cache中

No description provided.

@lvtraveler
Author

lvtraveler commented on Mar 18, 2019

参考:【缓存】HTML5缓存的那些事

使用PHP做 http pxory 缓存&代理, 使用redis做缓存,支持毫秒过期,拥有超高性能

使用PHP做 http pxory 缓存&代理, 使用 redis 做缓存,支持毫秒过期,拥有超高性能

<?php

 //PHP http pxory 缓存&代理, 使用redis做缓存,支持毫秒过期,拥有超高性能

 $url=@$_GET['url'];
if (empty($_GET['url'])) {
     echo 'url is empty ';
     exit;
}

 $path=parse_url($url, PHP_URL_PATH);
 $key=$path;

 $redis = new Redis();
 $redis->pconnect('127.0.0.1', 6379);

if ($content=$redis->get($key)) {
     echo $content;
     exit;
}

 
                        

nginx启用proxy cache 代理缓存

nginx启用proxy cache 代理缓存

nginx.conf中的
http {
下面加

proxy_cache_path /data/nginxcache levels=1:2 keys_zone=my_cache:500m max_size=10g inactive=30d use_temp_path=off;

某个站点的配置文件中增加以下配置:

location / {

proxy_cache my_cache;
proxy_cache_revalidate on;
#proxy_cache_valid 200 206 304 301 302 30d;
proxy_cache_valid any 30d;
proxy_ignore_headers "Set-Cookie";
proxy_ignore_headers "Expires";
#proxy_ignore_headers "Age";
proxy_cache_key …

                

Laravel 的 ORM 缓存包

LaraCache是一个基于 ORM 的 Laravel 包,用于基于模型查询创建、更新和管理缓存项。使用此包,您可以缓存在整个应用程序中大量使用的查询。

use Mostafaznv\LaraCache\Traits\LaraCache;
 
class Article extends Model
{
    use LaraCache;
 
    public static function cacheEntities(): array
    {
        return [
            CacheEntity::make('list.forever')
                ->cache(function() {
                    return Article::query()->latest()->get();
                }),
 
            CacheEntity::make('latest')
                ->validForRestOfDay()
                ->cache(function() {
                    return Article::query()->latest()->first();
                })
        ];
    }
}

使用该

                

轻松理解HTTP缓存策略

上一篇文章我写了koa-static的源码解析,其中用到了HTTP的缓存策略,给返回的静态文件设置了一些缓存的头,比如Cache-Control之类的。于是我就跟朋友讨论了一下HTTP的缓存策略:

朋友说:“HTTP里面控制缓存的头(header)太多了,啥Cache-ControlETagLast-Modified,一大堆,乱七八糟的,而且之间逻辑关系不强,要掌握基本靠背!”

我有点惊讶:“为什么要去背这个呢?所有的技术都是为了解决问题而存在的,不了解问题而去单纯的学习技术,去,背,去,死记,确实很枯燥,而且效果不好。HTTP缓存策略只是为了解决客户端和服务端信息不对称的问题而存在的,客户端为了加快速度会缓存部分资源,但是下次请求时,客户端不知道这个资源有没有更新,服务端也不知道客户端缓存的是哪个版本,不知道该不该再返回资源,其实就是一个信息同步问题,HTTP缓存策略就是来解决这个问题的。如果我们跳出这种纯粹的技术思维,我们会发现生活中这种信息同步问题也很常见。而我们解决这些问题的思路很多时候都是司空见惯了,如果从这个角度来说,这个问题就很好理解!”

于是我给他讲了一个我小时候租光碟看奥特曼的故事。…

            

实践带你了解–http缓存

这次文章为了了解http缓存的机制,自己搭建nginx和设置nginx配置
网上的文章其实有很多,但是大部分都是文字表达,缓存这块又比较偏向理论,导致我一开始也是云里雾里的

所以这次我通过截图和步骤图来说明,并且进行文字补充, 不喜欢看文字的话其实看图片就行啦

以下每次截图都是无痕模式的…