tmd / laravel-multi-cache
10.1.0
2024-08-27 11:27 UTC
Requires
- php: >=8.1
- laravel/framework: ^10.0 || ^11.0
Requires (Dev)
- mockery/mockery: ^1.6
- orchestra/testbench: ^8.19
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2024-08-27 12:13:01 UTC
README
允许您将多个 Laravel 缓存存储作为单个使用。从找到的第一个缓存中检索项目。
一个示例用法是拥有一个数组缓存和 Redis 缓存。首先从数组缓存中获取项目(更快),如果键未找到,则从 Redis 中获取。如果 Redis 中找到了值,则将其存储在数组缓存中。
安装
composer require antriver/laravel-multi-cache
将此添加到您的 config/app.php 中的 providers 数组
Antriver\LaravelMultiCache\MultiStoreServiceProvider::class
将 multi 存储添加到您的 config/cache.php 中的 stores 数组
'stores' => [
'array' => [
'driver' => 'array',
],
'database' => [
'driver' => 'database',
'table' => 'cache',
'connection' => null,
],
'redis' => [
'driver' => 'redis',
'connection' => 'redis-cache',
],
'multi' => [
'driver' => 'multi',
'stores' => [
'array',
'redis',
'database'
],
'sync_missed_stores' => true,
]
],
在 .env 中设置您的 CACHE_DRIVER
CACHE_DRIVER=multi
用法
缓存实现了标准缓存接口,所以您可以使用所有正常的 get() 和 put() 方法。
get($key)
从第一个存储中返回找到的 $key 的值(按 stores 中定义的顺序)。如果值在 array 中未找到,但在 redis 中找到,则返回 redis 中的值并将其放入 array 中,但不会放入 database。此行为可以通过在配置中设置 sync_missed_stores => false 来禁用。
put($key, $value, $minutes)
在所有存储中存储一个项目。
所有其他方法(如 increment()、forget()、flush() 等)在所有存储上执行操作。