РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
845 of 1361 menu

Адаптер MemcachedAdapter

Адаптер MemcachedAdapter создаёт PSR-6 совместимый пул кеша, который хранит данные в сервере Memcached. Первым параметром в конструктор передаётся объект \Memcached или массив DSN-строк для подключения к серверам. Вторым параметром можно передать пространство имён, третьим - время жизни элементов по умолчанию. Адаптер удобен для распределённого кеша между несколькими серверами.

Синтаксис

<?php use Symfony\Component\Cache\Adapter\MemcachedAdapter; $cache = new MemcachedAdapter( \Memcached $client, string $namespace = '', int $defaultLifetime = 0, ); ?>

Пример

Давайте создадим пул кеша на основе Memcached и сохраним в него значение:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Cache\Adapter\MemcachedAdapter; class CacheController extends AbstractController { public function index(): Response { $client = MemcachedAdapter::createConnection('memcached://localhost:11211'); $cache = new MemcachedAdapter($client, 'app'); $item = $cache->getItem('user'); $item->set('abcde'); $cache->save($item); $item = $cache->getItem('user'); return new Response($item->get()); } } ?>

Результат выполнения кода:

abcde

Пример

Давайте создадим подключение через статический метод createConnection и получим несколько элементов за один запрос:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Cache\Adapter\MemcachedAdapter; class CacheController extends AbstractController { public function index(): Response { $client = MemcachedAdapter::createConnection('memcached://localhost:11211'); $cache = new MemcachedAdapter($client, 'app', 3600); $item1 = $cache->getItem('user'); $item1->set('abcde'); $cache->save($item1); $item2 = $cache->getItem('article'); $item2->set('hello'); $cache->save($item2); $items = $cache->getItems(['user', 'article']); $res = []; foreach ($items as $item) { $res[] = $item->get(); } return new Response(implode(', ', $res)); } } ?>

Результат выполнения кода:

abcde, hello

Смотрите также

  • класс Cache,
    который управляет пулами кеша
  • метод getItem,
    который возвращает элемент кеша по ключу
  • метод save,
    который сохраняет элемент в кеш
  • адаптер RedisAdapter,
    который кеширует данные в Redis
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить