Redis php extension windows

wuliupo / redis.php

$ host = ‘test.kvstore.aliyuncs.com’ ;
$ port = 6379 ;
$ user = ‘username’ ;
$ pwd = ‘password1234’ ;
$ key = ‘the_stored_key’ ;
$ redis = new Redis ();
if ( $ redis -> connect ( $ host , $ port ) == false ) <
die ( $ redis -> getLastError ());
>
if ( $ redis -> auth ( $ pwd ) == false ) <
die ( $ redis -> getLastError ());
>
if ( $ redis -> set ( $ key , ‘this is a test string. ‘ . rand ( 100 , 10000 )) == false ) <
die ( $ redis -> getLastError ());
>
$ value = $ redis -> get ( $ key );
echo ‘ get data from Redis: ‘ . $ key . ‘ = ‘ . $ value ;
?>

This comment has been minimized.

Copy link Quote reply

wuliupo commented Jan 13, 2017

Environment setup

  • check your platform (like: Windows, Thread safe, 32-bit) PHP 5.6 Thread Safe (TS) x86
  • php_redis.dll
    • http://pecl.php.net/package/redis/2.2.7/windows
    • http://windows.php.net/downloads/pecl/releases/redis/2.2.7/php_redis-2.2.7-5.6-ts-vc11-x86.zip
  • php_igbinary.dll
    • http://pecl.php.net/package/igbinary/1.1.1/windows
    • http://windows.php.net/downloads/pecl/releases/igbinary/1.1.1/php_igbinary-1.1.1-5.6-ts-vc11-x86.zip
  • modify php.ini

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.

Redis php extension windows

Installation from pecl

To pull latest stable released version, from pecl:

Installation from sources

To build this extension for the sources tree:

If you would like phpredis to serialize your data using the igbinary library, run configure with —enable-redis-igbinary . If you would like to use the msgpack serializer, run configure with —enable-redis-msgpack (note: Requires php-msgpack >= 2.0.3) The extension also may compress data before sending it to Redis server, if you run configure with —enable-redis-lzf . If you want to use lzf library pre-installed into your system use —with-liblzf configuration option to specify the path where to search files. make install copies redis.so to an appropriate location, but you still need to enable the module in the PHP config file. To do so, either edit your php.ini or add a redis.ini file in /etc/php5/conf.d with the following contents: extension=redis.so .

You can generate a debian package for PHP5, accessible from Apache 2 by running ./mkdeb-apache2.sh or with dpkg-buildpackage or svn-buildpackage .

This extension exports a single class, Redis (and RedisException used in case of errors). Check out https://github.com/ukko/phpredis-phpdoc for a PHP stub that you can use in your IDE for code completion.

Most distributions provides pre-build binary packages of this extension.

Fedora users can install the package from the official repository.

Fedora ≥ 29, Version 5

Installation of the php-pecl-redis5 package:

Читайте также:  Драйвер для видеокарты radeon hd 4650 для windows 10

Installation of the php-pecl-redis package, from the EPEL repository:

Installation of the php7-redis package:

Installation on OSX

If the install fails on OSX, type the following commands in your shell before trying again:

If that still fails and you are running Zend Server CE, try this right before «make»: ./configure CFLAGS=»-arch i386″ .

You can install it using MacPorts:

  • Get macports-php
  • sudo port install php56-redis (or php53-redis, php54-redis, php55-redis, php70-redis, php71-redis, php72-redis)

Building on Windows

See instructions from @char101 on how to build phpredis on Windows.

Стартуем работу с Redis и PHP

Rdis — сетевое журналируемое хранилище данных типа “ключ — значение” с открытым исходным кодом. Как правило, данное программное средство используется как нереляционная высокопроизводительная СУБД. В ней можно хранить строки, хэши, списки и многое другое.

Об этой статье

Данная статья не является руководством по работе с Redis (для этого можете посетить официальный сайт). В данной статье мы рассмотрим как связать Redis и PHP.

Установка Redis

Процесс установки абсолютно не вызывает трудностей. Просто следуйте инструкциям, изложенным на официальном сайте.

Установка Redis на Linux

Для установке Redis на Linux вам потребуется TCL. Запустите команду:

$ sudo apt-get install tcl

Для установки Redis:

$ wget http://download.redis.io/releases/redis-2.8.19.tar.gz
$ tar xzf redis-2.8.19.tar.gz
$ cd redis-2.8.19
$ make

Заметка: значение 2.8.19 замените на номер текущей стабильной версии.

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

Установка Redis на Windows

Для установки Redis на Windows просто скачайте последний пакет и следуйте инструкциям.

Установите Predis — клиент для PHP. Для этого скопируйте его с GitHub в папку с проектом:

$ git clone git://github.com/nrk/predis.git

Подключение к Redis

Для начала подключаем автозагрузчик Redis. Затем помещаем код в блок try/catch. Подключение к локальному Redis выглядит несколько иначе, чем к удалённому.

Теперь, когда подключение произошло, можем приступать к работе с Redis.

Типы данных в Redis

Redis поддерживает целый ряд типов данных. Вы можете спросить какое это имеет значение для NOSQL базы данных? Это позволяет хранить данные в том виде, в котором это целесообразней и в некоторых случаях влияет на скорость доступа к данным.

  • Строка: обычные наборы символов.
  • Список: линейный массив.
  • Хэш-таблицы: ассоциативные массивы.
  • Множества: набор уникальных значений.
  • Упорядоченные множества: множества упорядоченные по параметру “score”.

Есть ещё и другие типы данных, такие как битмапы и иероглифы, но их мы рассматривать не будем.

Геттеры и сеттеры

При работе с Redis нужно знать три основные команды: SET , GET и EXISTS . Они используются чтобы проверить наличие/отправить и получить данные от Redis. К примеру:

Инкремент и декремент

INCR и DECR — это команды, использующиеся для увеличения и уменьшения значения.

Для увеличения/уменьшения более чем на 1, можете воспользоваться командами INCRBY и DECRBY .

Работа с списками

Для работы со списками вам понадобятся команды:

  • LPUSH: помещает элемент в начало списка
  • RPUSH: помещает элемент в конец списка
  • LPOP: извлекает первый элемент из списка
  • RPOP: извлекает последний элемент из списка
  • LLEN: получение размерности списка
  • LRANGE: получение нескольких элементов списка

Просто использование списков:

Работа с хэш-таблицами

Как уже упоминалось, данный тип можно сопоставить с ассоциативными таблицами. Команды:

  • HSET: установка элемента ключ-значение
  • HGET: извлечение элемента ключ-значение
  • HGETALL: извлечение всех элементов
  • HMSET: установка нескольких элементов ключ-значение
  • HDEL: Удаление элемента по ключу
  • HINCRBY: увеличить элемент ключ-значение.
Читайте также:  Root права для windows phone

Работа с множествами

Список команд: – SADD : добавление числа N ключу – SREM : удаление числа N ключу – SISMEMBER : проверка существование значения – SMEMBERS : набор всех значений.

Работа с упорядоченными множествами

Поскольку Redis хранит данные в памяти, то они не могут располагаться там вечно. Поэтому нам понадобится возможность установить EXPIRE , EXPIREAT , TTL , PERSIST – EXPIRE : время истечения срока хранения в секундах, после чего элемент будет удалён – EXPIREAT : истечение срока unix timestamps – TTL : получить значение оставшегося времени – PERSIST : сброс истечения срока.

Мы рассмотрели лишь самые необходимые команды. Все остальные можно найти на сайте Redis.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: https://scotch.io/tutorials/getting-started-with-redis-in-php
Перевел: Станислав Протасевич
Урок создан: 24 Апреля 2015
Просмотров: 68234
Правила перепечатки

5 последних уроков рубрики «PHP»

Фильтрация данных с помощью zend-filter

Когда речь идёт о безопасности веб-сайта, то фраза «фильтруйте всё, экранируйте всё» всегда будет актуальна. Сегодня поговорим о фильтрации данных.

Контекстное экранирование с помощью zend-escaper

Обеспечение безопасности веб-сайта — это не только защита от SQL инъекций, но и протекция от межсайтового скриптинга (XSS), межсайтовой подделки запросов (CSRF) и от других видов атак. В частности, вам нужно очень осторожно подходить к формированию HTML, CSS и JavaScript кода.

Подключение Zend модулей к Expressive

Expressive 2 поддерживает возможность подключения других ZF компонент по специальной схеме. Не всем нравится данное решение. В этой статье мы расскажем как улучшили процесс подключение нескольких модулей.

Совет: отправка информации в Google Analytics через API

Предположим, что вам необходимо отправить какую-то информацию в Google Analytics из серверного скрипта. Как это сделать. Ответ в этой заметке.

Подборка PHP песочниц

Подборка из нескольких видов PHP песочниц. На некоторых вы в режиме online сможете потестить свой код, но есть так же решения, которые можно внедрить на свой сайт.

Установка Redis + Redis PHP + phpRedisAdmin на боевом сервере за 15 минут

Всем уже давно известно, что самые лучшие бинарные файлы — это те, которые были скомпилированы именно на этом компьютере. И, когда вопрос заходит о производительности, то компилирование компонентов на этом компьютере даст свое преимущество в скорости и стабильности.

В данной статье речь пойдет о том, как подготовить Redis, phpredis (С модуль для php) и phpRedisAdmin для работы на боевом сервере.

Для того, чтобы собрать все полноценно, нам нужно иметь на сервере:

  • gcc 4.5.2 (Я компилировал под этой версией, но думаю, что с другими проблем не возникнет)
  • Make 3.81 (Опять же, версия не принципиальна)
  • php5-dev (Версия должна совпадать с версией php)

После того, как мы убедимся, что все зависимости удовлетворены, начинаем собирать все компоненты.
Нам потребуются:

  • Redis 2.4.4 Stable
  • phpredis 2.1.3
  • phpRedisAdmin

Собираем Redis

Для того, чтоб собрать Редис, нам потребуются сами исходники. Получить их можно с github. Поэтому
https://github.com/antirez/redis/zipball/2.4.4 загружаем сразу нужный тег.

Теперь у нас есть все исходники Redis 2.4.4, осталось их скомпилировать.
Все очень просто

Первой командой мы собрали Redis, второй его проверили на работоспособность.
Make test будет проходить долго (около 2х минут). После теста должна вернуться такая строка «\o/ All tests passed without errors!»

Читайте также:  Как прошивать windows mobile

Redis собран, осталось зачистить мусор и унести редис в нужный каталог.
Унесем весь скомпилированный Redis в папку /usr/bin/redis. А чтоб запускать Redis-server, в /usr/bin создадим shell файл redis-server.

Уносим файлы Redis в /usr/bin/redis

Мы все еще остаемся в папке antirez-redis-04bba69, где лежат исходники

Мы скопировали все файлы от Redis и удалили папку с исходниками, она нам уже не нужна.
Будьте осторожны с последней командой! sudo для нее не нужен, папка и так в наших владениях.

Теперь нам нужно создать файл для запуска redis-server.

Вместо vim можете использовать любой другой редактор. Это не принципиально.
В файл вставляем:
cd /usr/bin/redis && ./redis-server redis.conf
Сохраняем, закрываем.

Для этого файла нужно дать право на исполнение.

Осталось взять redis.conf

Redis.conf загружен, осталось его настроить.
Заменяем в файле конфигурации

daemonize no на daemonize yes # Пусть работает как демон
timeout 0 на timeout 30 # В случае баги клиент, который не отсоединяется, навечно зависнет в памяти Redis
loglevel notice на loglevel warning # У нас боевой сервер, минимум отладочных сообщений
Строку 166 нужно расскоментировать и установить пароль к примеру requirepass foobared
Строку 350 комментируем, она не нужна.

Запуск!

Если все было сделано правильно, то запускаем сервер

По идее вам должно показать приглашение от Redis
Trying 127.0.1.1…
Connected to localhost.
Escape character is ‘^]’.

Если вы его получили, значит все отлично, Redis работает.

Тестируем сервер

Теперь мы общаемся с Redis по сокету.
Авторизируемся:

Устанавливаем тестовое значение

Если все прошло успешно, значит сервер работает, и с ним мы заканчиваем. Устанавливаем команду на автозагрузку при старте системы и все.

Redis + PHP5. Компилируем модуль для PHP

Тут тоже все очень просто, так что можно просто следовать командам.

Тут думаю комментарии не нужны.

Теперь собираем redis.so расширение.

Теперь в папке modules появился файл redis.so, он-то нам и нужен.

меняем на имя папки, которое выглядит примерно так: 20090626.

Далее дать информацию php о Redis.so
поэтому

и вписываем в него extension=redis.so
По желанию заменяем apache2 на cli, cgi и так далее, в зависимости от того, как у Вас установлен php, и как вы его хотите использовать вместе с Redis.

Теперь рестартим apache2 и в тестовом php файле пишем:

Если ошибка, что класс Redis не существует, не вылетела, то все отлично.

Проведем benchmark тест непосредственно в php.

У меня появилась информация, что 80000 запросов были обработаны за 2.6 секунд.

На этом с php мы закончили. Далее phpRedisAdmin.

Установка phpRedisAdmin

Установка phpRedisAdmin абсолютно не нужна, но для визуализации данных не помешает.

Качаем из git саму админку.

Мы создаем папку redisadmin в /var/www. Добавляем права на файлы, потому что изначально у меня permission denied на redisadmin.

Не забудьте настроить веб-сервер, чтоб сайт можно было открыть уже из сети.
Но использовать redis admin не безопасно на продакшене, поэтому его нужно как ни как закрыть для всех посторонних глаз паролем.

Нужно расскоментировать строку 11 и установить пароль к серверу.

Далее нужно расскоментировать блок с 36 по 46 строку, назначив админский пароль, который будет запрашиваться при входе в phpRedisAdmin

PROFIT!
За 15 минут мы смогли поднять Redis сервер, настроить его для работы с PHP и поднять phpRedisAdmin.

Оцените статью