Redis & phpRedisAdmin

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 20:37, 1 июня 2018.
phpRedisAdmin
PhpRedisAdmin.png
Создатели: Эрик Дуббелбоер
Разработчики: Эрик Дуббелбоер
Выпущена: 6 July 2011 года; 8 years ago (2011-07-06)
Постоянный выпуск: 1.10.2 / 23 February 2018 года; 2 years ago (2018-02-23)
Написана на: PHP, JavaScript
Операционная система: Кросс-платформенное ПО
Лицензия: Creative Commons Attribution 3.0 license
Веб-сайт github.com/erikdubbelboer/phpRedisAdmin

phpRedisAdmin - простой веб-интерфейс, предназначенный для управления СУБД Redis и написанный на PHP и JavaScript. Интерфейс был разработан Эриком Дуббелбоером и выпускается под лицензией Creative Commons Attribution 3.0 license.

Установка

Рассматривается пример установки на ОС Ubuntu 18.04, http-сервер apache2. Перед установкой phpRedisAdmin необходимо установить на сервер необходимое ПО для сборки базы данных и ее модулей, непосредственно саму СУБД Redis, php-пакеты для обработки сервером php-скриптов и php-модуль Redis.

Необходимые пакеты

Перед началом сборки Redis и phpRedis необходимо установить компилятор gcc, утилиту для организации сборки нескольких файлов make, утилиту tcl, систему управления версиями git:

sudo apt-get install gcc make tcl git

Redis

Скачиваем архив с последней версией Redis, извлекаем из него исходники и переходим в разархивированную директорию:

wget http://download.redis.io/releases/redis-stable.tar.gz
tar xzf redis-stable.tar.gz
cd redis-stable

Соберем сервер и протестируем его:

make
sudo make install
make test

После этого в директории utils появился скрипт install_server.sh, который запускает сервер Redis как службу. При его запуске можно изменить предложенные настройки или оставить их по умолчанию:

sudo service redis_6379 start

Проверка работы сервера:

redis-cli
set test:user "trata"
get test:user

Если установка прошла корректно, перечисленные выше команды выполнятся без ошибок, и в результате команды get выдастся строка "trata"

php и php-Redis[Источник 1]

Установка php-пакетов для обработки сервером apahe2 php-скриптов (в стандартном пакете php не предоставляются инструменты для работы с многобайтными строками, которые используются в phpRedisAdmin, поэтому их надо установить отдельно):

sudo apt-get install php php-mbstring libapache2-mod-php

Скачиваем архив с последней версией phpRedis, извлекаем из него исходники и переходим в разархивированную директорию:

wget https://github.com/nicolasff/phpredis/zipball/4.0.2
unzip 4.0.2
cd phpredis-phpredis-61052e1

Далее собираем redis.so расширение и переносим его в директорию /usr/lib/php/<date> (<date> - в различных версиях ОС может быть разное имя директории, но, как образец, может выглядеть так: 20170718):

phpize
./configure CFLAGS="-O3"
make clean all
sudo cp modules/redis.so /usr/lib/php/20170718

Осталось только указать php об этом новом расширении:

sudo gedit /etc/php/7.2/apache2/php.ini

В открывшемся файле вписать "extension=/usr/lib/php/<date>/redis.so".

Для проверки корректности установки модуля php-Redis можно написать следующий php-скрипт:

<?php
try {
    $redis = new Redis();
    $redis->Connect('127.0.0.1');
    echo "success";
}
catch (Exception $e) {
    echo "smth wrong";
}
?> 

Если при обращении на данную страницу сервера появится текст "success", то это будет означать, что сервер распознал класс Redis и произошло успешное подключение к базе данных.

phpRedisAdmin[Источник 2]

Сначала необходимо скопировать репозиторий в необходимую директорию:

cd /var/www/html
sudo git clone https://github.com/ErikDubbelboer/phpRedisAdmin.git

Перейти в корневую папку скачанного интерфейса, скопировать в нее predis из репозитория nrk под именем vendor:

cd phpRedisAdmin
sudo git clone https://github.com/nrk/predis.git vendor

Скопировать в директории includes пример конфигурационного файла config.sample.inc.php в эту же директорию с новым именем config.inc.php:

cd includes
sudo cp config.sample.inc.php config.inc.php

Перезапустить apache2:

sudo service apache2 restart

Теперь интерфейс доступен по 80 порту и к нему можно обращаться по адресу host/phpRedisAdmin, где host - IP-адрес или доменное имя сервера.

Docker-образ

Общедоступный Docker-образ phpRedisAdmin представлен на Docker Hub. Он автоматически строится из последней версии исходных кодов. Файл includes/config.environment.inc.php используется как конфигурационный файл - с его помощью переменные среды окружения используются как конфигурационные значения. Для запуска образа приведен пример команды:

docker run --rm -it -e REDIS_1_HOST=host -e REDIS_1_NAME=MyRedis -p port:80 erikdubbelboer/phpredisadmin

Для данного примера:

  • host - адрес хоста;
  • port - номер порта, который будет прослушиваться Docker-образом.

Настройка и функционал

Установка пароля доступа

Для установки процедуры аутентификации необходимо открыть конфигурационный файл phpRedisAdmin:

sudo gedit phpRedisAdmin/includes/config.inc.php

Раскомментировать участок кода под комментарием "Uncomment to enable HTTP authentication" и задать логины, пароли пользователей и список баз данных, к которым им имеется доступ.

Настройка HTTP-аутентификации phpRedisAdmin

Перезагружаем apache2:

sudo service apache2 restart

Теперь при входе на веб-интерфейс будет требоваться пройти процедуру аутентификации.

HTTP-аутентификация phpRedisAdmin

Возможности работы с БД

Веб-интерфейс предлагает набор базовых функций для работы с базой данных:

  • добавление пары ключ-значение;
  • удаление по ключу;
  • поиск и фильтрация отображения базы данных;
  • изменение ключа или значения.

Для добавления нового элемента в базу данных необходимо нажать кнопку Add another key, после этого ввести ключ, выбрать тип данных и ввести значение для данного ключа.

Добавление пары ключ-значение при помощи phpRedisAdmin

Для удаления элемента по ключу необходимо выделить его в списке всех элементов и нажать кнопку Delete(в виде красного крестика) у значения ключа.

Удаление по ключу при помощи phpRedisAdmin

Для отображения нужных элементов необходимо ввести в поле filter необходимые параметры поиска, после чего будут отображены только выбранные элементы.

Поиск и фильтрация отображения базы данных при помощи phpRedisAdmin

Для изменения значения или ключа элемента необходимо выделить его в списке всех элементов, нажать кнопку Rename и внести все необходимые изменения.

Изменение ключа при помощи phpRedisAdmin

Импорт/экспорт

phpRedisAdmin предлагает 2 вида экспорта данных: через команды Redis и через текстовый формат JSON.

Экспорт данных phpRedisAdmin

Но на данный момент импорт данных через phpRedisAdmin поддерживается только через команды Redis. В планах разработчика присутствует задача реализации импорта данных с помощью JSON.

Импорт данных phpRedisAdmin

Вывод

phpRedisAdmin реализует простой и интуитивно-понятный интерфейс, предоставляющий основные функции для работы с Redis, но не реализует полные возможности работы с базой данных, которые предоставляет консольная утилита redis-cli. Разработка и постоянная поддержка интерфейса осуществляется одним разработчиком, последняя версия была выпущена в феврале 2018 года. К плюсам можно отнести:

  • простота в установке и настройке;
  • возможность работы с несколькими базами данных;
  • открытый исходный код приложения.

Из недостатков можно отметить:

  • в текущей версии передача паролей при авторизации осуществляется в открытом тексте;
  • нету возможности управления конфигурациями сервера.

Источники

  1. Установка Redis + Redis PHP + phpRedisAdmin на боевом сервере за 15 минут // habr. URL: https://habr.com/post/134974/ (дата обращения: 09.05.2018).
  2. Installing/Configuring phpRedisAdmin // GitHub erikdubbelboer. URL: https://github.com/erikdubbelboer/phpRedisAdmin (дата обращения: 09.05.2018).

Ссылки/Литература

  1. Репозиторий GitHub разработчика phpRedisAdmin // GitHub Erik Dubbelboer: сайт. URL: https://github.com/erikdubbelboer (дата обращения 09.05.2018).
  2. Репозиторий GitHub разработчика phpRedis // GitHub Nicolas Favre-Felix: сайт. URL: https://github.com/nicolasff (дата обращения 09.05.2018).
  3. Официальный сайт Redis // Redis: сайт. URL: https://redis.io (дата обращения 09.05.2018).