Адаптер кеша Redis¶
Этот адаптер сохраняет значения в оперативной памяти, используя один (или больше) экземпляров `сервера Redis`_. В отличие от адаптера APCu, и схоже с адаптером Memcached, он не ограничен общей памятью текущего сервера; вы можете хранить содержание независимо от вашего PHP окружения. Возможность использовать кластер серверов для предоставления избыточности или восстановления после отказа также доступна.
Caution
Требования: Для использования этого адаптера должен быть установлен и запущен как
минимум один сервер Redis. Кроме того, этот адаптер требует совместимого расширения
или библиотеки, реализующей \Redis
, \RedisArray
, RedisCluster
, или \Predis
.
Этот адаптер ожидает, что экземпляр Redis, RedisArray, RedisCluster, или Predis будет передан в качестве первого параметра. Пространство имён и время жизни кеша по умолчанию могут быть опционально переданы в качестве второго и третьего параметров:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | use Symfony\Component\Cache\Adapter\RedisAdapter;
$cache = new RedisAdapter(
// объект, который хранит валидное соединение с вашей системой Redis
\Redis $redisConnection,
// строка-префикс кключам объектов, хранящихся в этом кеше
$namespace = '',
// время жизни по умолчанию (в секундах) для обїектов кеша, которіе не определяют
// собственное время жизни, со значением 0, что приводит к бесконечному хранению обїектов
// (т.е. пока не будет вызван until RedisAdapter::clear() или не будет очищен сервер(ы))
$defaultLifetime = 0
);
|
Сконфигурируйте соединение¶
Метод хелпера createConnection()
позволяе создание и конфигурацию экземпляра класса клиента Redis используя
Имя источника данных (DSN):
1 2 3 4 5 6 | use Symfony\Component\Cache\Adapter\RedisAdapter;
// передайте одну строку DSN, чтобы зарегистрировать в клиенте один сервер
$client = RedisAdapter::createConnection(
'redis://localhost'
);
|
DSN может указываь либо IP/хост (и необязательный порт), либо путь сокета, а также пользователя и пароль и оглавление DB.
Note
Имя источника данных (DSN) для этого адаптера должно использовать следующий формат.
1 | redis://[user:[email protected]][ip|host|socket[:port]][/db-index]
|
Ниже представлены общие примеры валидных DSN, демонстрирующие комбинацию доступных значений:
1 2 3 4 5 6 7 8 9 10 11 12 13 | use Symfony\Component\Cache\Adapter\RedisAdapter;
// хост "my.server.com" и порт "6379"
RedisAdapter::createConnection('redis://my.server.com:6379');
// хост "my.server.com" и порт "6379" and database index "20"
RedisAdapter::createConnection('redis://my.server.com:6379/20');
// хост "localhost" и SASL пользователь "rmf" и передать "abcdef"
RedisAdapter::createConnection('redis://rmf:[email protected]');
// сокет "/var/run/redis.sock" и SASL пользователь "user1" и передать "bad-pass"
RedisAdapter::createConnection('redis://user1:[email protected]/var/run/redis.sock');
|
Сконфигурируйте опции¶
Метод хелпера createConnection()
также принимает массив опций в качестве второго аргумента. Ожидаемый формат - ассоциативный
массив пар key => value
, представляющих названия опций и их соответственные значения:
use SymfonyComponentCacheAdapterRedisAdapter;
$client = RedisAdapter::createConnection(
// предоставьте dsn-строку 'redis://localhost:6739',
// ассоциативный массив опций конфигурации array(
'persistent' => 0, 'persistent_id' => null, 'timeout' => 30, 'read_timeout' => 0, 'retry_interval' => 0,)
);
Доступные опции¶
class
(тип:string
)- Указывает возвращаемую библиотеку соединения, либо
\Redis
, либо\Predis\Client
. Если не указана, то будет возвращена\Redis
, если доступно расширениеredis
, и\Predis\Client
в других случаях. persistent
(тип:int
, по умолчанию:0
)- Включает или отключает использование персистентных соединений. Значение
0
отключает персистентные соединения, а значение1
- включает. persistent_id
(тип:string|null
, по умолчанию:null
)- Указывает персистентный id строки, используемой для персистентного соединения.
read_timeout
(тип:int
, по умолчанию:0
)- Указывает время (в секундах), используемое при выполнение операций чтения в основном источнике сети до тайм-аута операции.
retry_interval
(тип:int
, по умолчанию:0
)- Указывает промежуток (в милисекундах) между попытками повторного соединения в случае, если клиент потеряет соединение с сервером.
timeout
(тип:int
, по умолчанию:30
)- Указывает время (в секундах), используемое для подключения в серверу Redis до тайм-аута попытки соединения.
Note
При использовании библиотеки Predis доступные некоторые дополнительные опции, применимые к Predis. Прочтите документацию `Парметры соединения Predis`_, чтобы узнать больше.
Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.