@Virtus_pro
PHP программист

Как использовать один и тот же кеш на разных доменах в Laravel?

Здравствуйте.

У меня своя VDS.
На ней находится Memcached, Apache

Большинство данных я заношу в Memcached

Есть два сайта api.site.ru и operator.site.ru

Запросы с приложений приходят на api.site.ru
записывается в кеш все вот так
$value = Cache::rememberForever('users', function() {
    return DB::table('users')->get();
});


Потом в нужный момент на сайте api.site.ru вызывается
Cache::forget('users');

Кеш очищается на сайте api.site.ru, вопросов нету

Но на operator.site.ru кеш не очищается, как быть? читал что надо сайты ставить от одного пользователя. Собственно так и делаю. Эти два сайта находятся на одном пользователе в Debian

Помогает только Cache::flush();
но это не выход (
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
Посмотрите реализацию /Illuminate/Cache/MemcachedStore
Там в строке 103 видно, что помимо ключа используется prefix:
$this->memcached->set($this->prefix.$key, $value, $this->toTimestamp($minutes));


Не стал рыться в исходниках Laravel глубже. Скорее всего, префикс состоит из уникального ключа из конфига.

Для вашей задачи надо найти момент инициализации этого Store и сделать так, чтобы использовался одинаковый префикс как для api, так и для operator.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы