Новое в Symfony 4.4: Улучшения Redis Cache

Redis – это популярное хранилище структуры данных в памяти, которое используется в качестве базы данных, кэша и посредника сообщений. Redis также является одним из самых популярных адаптеров компонента Symfony Cache, усовершенствовали его в Symfony 4.4 с помощью новых функций.

Добавлена поддержка Redis Sentinel

Redis Sentinel – это распределенная система, обеспечивающая высокую доступность Redis. Это позволяет создавать развертывание Redis, которое противостоит определенным типам сбоев без вмешательства человека.

В Symfony 4.4 добавили поддержку для него благодаря новой опции redis_sentinel, которую вы можете добавить в DSN-соединение Redis:

use Symfony\Component\Cache\Adapter\RedisAdapter;

// set the 'redis_sentinel' parameter to the name of your service group
$client = RedisAdapter::createConnection(
    'redis:?host[redis1:26379]&host[redis2:26379]&host[redis3:26379]&redis_sentinel=mymaster'
);

Вот и все! Единственное предостережение в том, что Sentinel также требуется библиотека Predis.

Улучшенный Redis Tag Aware Adapter

Адаптеры с поддержкой тегов используются в Symfony Cache для инвалидации кэша на основе тегов вместо срока действия. В Symfony 4.4 улучшили RedisTagAwareAdapter несколькими способами:

  • Снизили требование Redis до 2.8, и больше не нужны определенные версии phpredis
  • Увеличили ограничение в 2 миллиарда ключей на тег до 4 миллиардов ключей на тег, что является пределом типа данных Redis Set
  • Улучшили процесс инвалидации, чтобы также удалить ключ тега, чтобы не оставлять неиспользуемые теги, которые постепенно занимают все больше и больше памяти
  • Ускорили операции удаления, сократив их до одного приема вместо двух