kvelaro/caching

此包最新版本(dev-master)没有可用的许可信息。

Laravel 缓存中间件

安装: 6

依赖者: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 0

开放问题: 0

类型:中间件

dev-master 2020-06-15 00:22 UTC

This package is auto-updated.

Last update: 2024-09-15 09:21:16 UTC


README

通过 memcached 实现数据缓存的数据缓存插件

安装

  1. composer
composer require kvelaro/caching
  1. 在 App\Http\Kernel 中添加到中间件列表
protected $middleware = [
...
...
\Kvelaro\Caching\Caching::class
];

任务

考虑到配置文件中声明了两个缓存键(primary 和 backup)

'primary-memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],
        'backup-memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],

实现以下任务

  • 用户请求的页面(以下数据)应从缓存中提供
  • 作为存储/保存/读取/写入的关键字是数据的链接(页面),包括域名,值是数据本身
  • 如果域名有 "n" 或 "nocache" 的前缀,则应在从缓存服务读取关键字时忽略这些前缀
  • 作为附加选项,用户还可以在环境文件(.env)中添加额外的前缀(通过逗号分隔),例如:CACHE_IGNORE_PREFIXES = "a, b, c"。
  • 如果请求结果为 500 级错误,尝试在缓存中查找,只查找 backup,如果有内容,则提供它,否则提供错误而不会保存到缓存中