kvelaro/caching

There is no license information available for the latest version (dev-master) of this package.

Laravel caching middleware

Installs: 6

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 2

Forks: 0

Open Issues: 0

Type:middleware

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 Добавить к списку промежуточных модулей (middleware)
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. Например: CACHE_IGNORE_PREFIXES = "a, b, c".
  • Если результат запроса - ошибка 500-ой серии, пытаемся найти в кеше, причем только в backup, если там есть контент, отдаем его, в противном случае, отдаем ошибку без сохранения в кеш