Введение
Redis — открытое продвинутое хранилище пар ключ/значение. Его часто называют сервисом структур данных, так как ключи могут содержать строки, хэши, списки, наборы и сортированные наборы.
Внимание: если у вас установлено расширение Redis через PECL, вам нужно переименовать псевдоним в файле app/config/app.php.
Настройка
Настройки вашего подключения к Redis хранятся в файле app/config/database.php. В нём вы найдёте массив redis, содержащий список серверов, используемых приложением:
'redis' => array(
'cluster' => true,
'default' => array('host' => '127.0.0.1', 'port' => 6379),
),
Значения по умолчанию должны подойти для разработки. Однако вы свободно можете менять этот массив в зависимости от своего окружения. Просто дайте имя каждому подключению к Redis и укажите серверные хост и порт.
Параметр cluster сообщает клиенту Redis Laravel, что нужно выполнить фрагментацию узлов Redis (client-side sharding), что позволит вам обращаться к ним и увеличить доступную RAM. Однако заметьте, что фрагментация не справляется с падениями, поэтому она в основном используется для кэшировании данных, которые доступны из основного источника.
Если ваш сервер Redis требует авторизацию, вы можете указать пароль, добавив к параметрам подключения пару ключ/значение password.
Использование
Вы можете получить экземпляр Redis методом PHPRedis::connection()
:
$redis = Redis::connection();
Так вы получите экземпляр подключения по умолчанию. Если вы не используете фрагментацию, то можно передать этому методу имя сервера для получения конкретного подключения, как оно определено в файле настроек.
$redis = Redis::connection('other');
Как только у вас есть экземпляр клиента Redis вы можете выполнить любую команду Redis. Laravel использует магические методы PHP для передачи команд на сервер:
$redis->set('name', 'Тейлор');
$name = $redis->get('name');
$values = $redis->lrange('names', 5, 10);
Как вы видите, параметры команд просто передаются магическому методу. Конечно, вам не обязательно использовать эти методы — вы можете передавать команды на сервер методом PHPcommand()
.
$values = $redis->command('lrange', array(5, 10));
Когда вы выполняете команды на подключении по умолчанию просто вызывайте соответствующие статические методы класса PHPRedis
:
Redis::set('name', 'Тейлор');
$name = Redis::get('name');
$values = Redis::lrange('names', 5, 10);
Laravel поставляется с драйверами Redis для кэширования и сессий.
Конвейер
Конвейер должен использоваться, когда вы отправляете много команд на сервер за одну операцию. Для начала выполните команду PHPpipeline()
.
Отправка конвейером набора команд на сервер
Redis::pipeline(function ($pipe) {
for ($i = 0; $i < 1000; $i++) {
$pipe->set("key:$i", $i);
}
});
Комментарии (1)
Ошибка в описании, текст:
Внимание: если у вас установлено расширение Redis через PECL, вам нужно переименовать псевдоним в файле app/config/app.php.
И
Настройки вашего подключения к Redis хранятся в файле app/config/app.php
На самом деле настройки хранятся в файле app/config/database.php