Использование Redis в PHP-разработке становится всё более распространённым. От простого кэширования до использования Redis как базы данных или очереди сообщений — возможности этого решения практически безграничны. С выходом PhalApi2 был создан PhalApi2-Redis, который предоставляет расширенные возможности работы с Redis и полезные механизмы упаковки, чтобы помочь разработчикам эффективнее использовать это решение для решения реальных бизнес-задач.
Дополнительно:
Официальный сайт: http://www.phalapi.net/
Адрес проекта на GitHub: https://github.com/wenzhenxi/phalapi2-redis
Адрес проекта на Gitee: https://gitee.com/wenzhenxi/phalapi2-redis
Рекомендуется использовать oneinstack для установки Redis на Linux:
oneinstack: https://oneinstack.com/
Для ручной установки Redis есть множество руководств в интернете, но стоит обратить внимание на следующие параметры конфигурационного файла:
databases 100 # максимальное количество баз данных Redis (по умолчанию OnClickListener 16, рекомендуется увеличить до 100)
requirepass phalapi # пароль для подключения к Redis (по умолчанию отсутствует, рекомендуется установить)
```Установка зависимости php-redis:
```bash
# скачивание и установка phpredis
wget https://github.com/nicolasff/phpredis/archive/master.zip
unzip master.zip -d phpredis
cd phpredis/phpredis-master
phpize
./configure
make && make install
# регистрация phpredis в php.ini
extension = redis.so
После выполнения этих шагов вы сможете видеть Redis при вызове phpinfo()
.
Добавьте следующую строку в файл composer.json
вашего проекта:
{
"require": {
"phalapi/redis": "2.0.*"
}
}
После этого выполните команду composer update
, чтобы обновить зависимости.
Необходимо добавить следующие параметры в файл конфигурации ./config/app.php:
Таким образом, теперь ваш проект может использовать расширенные возможности Redis через PhalApi2-Redis.
/**
* Расширенная библиотека — расширение Redis
*/
'redis' => array(
// Параметры конфигурации соединения с Redis
'servers' => array(
'host' => '127.0.0.1', // Адрес сервера Redis
'port' => '6379', // Порт Redis
'prefix' => 'PhalApi_', // Префикс ключей Redis
'auth' => 'phalapi', // Пароль соединения с Redis
),
// Соответствие баз данных Redis при работе с ними используется имя вместо номера базы данных
'DB' => array(
'developers' => 1,
'user' => 2,
'code' => 3,
),
// Время ожидания при использовании блокирующего чтения очереди в секундах
'blocking' => 5,
),
// Ленивая загрузка Redis
\PhalApi\DI()->redis = function () {
return new \PhalApi\Redis\Lite(\PhalApi\DI()->config->get("app.redis.servers"));
};
Основные операции с использованием базовых методов (подробнее см. src/Lite.php):
// Сохранение постоянного ключа-значения
\PhalApi\DI()->redis->set_forever('ключ', 'значение', 'имя_базы');
// Получение постоянного ключа-значения
\PhalApi\DI()->redis->get_forever('ключ', 'имя_базы');
// Сохранение временного ключа-значения со значением времени жизни по умолчанию 600 секунд
\PhalApi\DI()->redis->set_time('ключ', 'значение', 'время_жизни', 'имя_базы');
// Получение временного ключа-значения
\PhalApi\DI()->redis->get_time('ключ', 'имя_базы');
// Вставка значения в левую сторону очереди
\PhalApi\DI()->redis->lpush('ключ_очереди', 'значение', 'имя_базы');
// Чтение значения из правой стороны очереди
\PhalApi\DI()->redis->rpop('ключ_очереди', 'имя_базы');
// Чтение значения из правой стороны очереди с блокировкой на определённое время при отсутствии данных
\PhalApi\DI()->redis->brpop('ключ_очереди', 'время_ожидания', 'имя_базы');
// Удаление ключа-значения
\PhalApi\DI()->redis->del('ключ', 'имя_базы');
// Автоматическое увеличение значения ключа
\PhalApi\DI()->redis->incr('ключ', 'имя_базы');
// Изменение текущей базы данных и получение экземпляра для работы
\PhalApi\DI()->redis->select('индекс_базы', 'имя_базы');
Если у вас есть предложения по улучшению, вы можете связаться лично или присоединиться к сообществу PhalApi для совместной работы над проектом.Примечание: Автор данной статьи имеет ограниченные возможности, поэтому если вы заметили ошибки, пожалуйста, сообщите об этом. Также приветствуем любое взаимодействие!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )