kvelaro / caching
此包最新版本(dev-master)没有可用的许可信息。
Laravel 缓存中间件
dev-master
2020-06-15 00:22 UTC
This package is auto-updated.
Last update: 2024-09-15 09:21:16 UTC
README
通过 memcached 实现数据缓存的数据缓存插件
安装
- composer
composer require kvelaro/caching
- 在 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,如果有内容,则提供它,否则提供错误而不会保存到缓存中