Стартуем работу с 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: увеличить элемент ключ-значение.
Работа с множествами
Список команд: – 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
Просмотров: 63971
Правила перепечатки
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 (REmote DIctionary Server) — это нереляционная высокопроизводительная СУБД, сетевое хранилище данных типа «ключ — значение».
Отличие Redis от других хранилищ состоит в том, что значения ключей не ограничиваются строками; есть поддержка таких абстрактных типов данных, как строки, списки, множества, хэш-таблицы и другие.
Также, рассказывая о Redis, часто выделяют ее высокую производительность: причина заключается в том, что все данные хранятся в оперативной памяти. Поэтому есть смысл использовать Redis для работы с быстроменяющимися и активно запрашиваемыми данными.
Redis может стать более чем полноценной заменой Memcached, дав возможность использовать репликацию, более длинные ключи и значения и многое другое.
Изначально установку Redis сервера рекомендуется проводить из репозиториев используемой операционной системы. Предполагается, что последующие команды будут выполняться от имени пользователя root или при использование sudo (если Вы авторизованы не от пользователя root, рекомендуем выполнить sudo su).
Установка на DEB дистрибутивы (Ubuntu/Debian)
Сначала выполним обновление пакетов:
После чего непосредственно выполнив установку Redis сервера:
После завершения установки проверим работу установленного сервиса:
В случае успешной установки в ответ придет текст — PONG, если сервис не установился или не запустился, на экран будет выведена ошибка, о невозможности подключится к сервису или отсутствии команды redis-cli .
Если Redis сервер установлен и запустился, то он будет ожидать подключение на локальном интерфейсе 127.0.0.1 (localhost), порт стандартный — 6379.
Установка на RHEL (CentOS/BitrixOS)
Процесс установки почти не отличается от установки на Debian дистрибутивы. Сначала обновляем пакеты:
Выполняем установку Redis сервера:
Запускаем сервис и добавляем его в автозагрузку:
После чего проверим его работу:
В независимости от используемого дистрибутива Вы всегда можете установить последнюю версию Redis сервера, собрав её из исходных кодов по инструкции с официального сайта проекта Redis:
Настройка Redis
Для Ubuntu и Debian основной конфигурационный файл Redis сервера Вы найдете по пути /etc/redis/redis.conf, в CentOS (а также BitrixOS) конфигурация располагается в файле /etc/redis.conf.
Наиболее интересным будет параметр maxmemory , он задает ограничение использования оперативной памяти для хранения данных в Redis. По умолчанию Redis может использовать всю доступную память сервера, поэтому если сервер не обладает достаточным количеством постоянно свободной памяти (Вы можете просмотреть информацию о используемой памяти командой free -m ), то стоит задать этот параметр. Самым простым решением для выбора максимального объема памяти будет разделить среднее значение нескольких показаний свободной памяти ( free -m ) пополам.
Например, в течение часа показатели free -m были следующими:
Средним показателем для свободной памяти (столбец free) будет 187 ((204+188+169)/3=187), поэтому ограничим maxmemory в 180 Мб. Для этого откроем файл redis.conf, найдем строку “ # maxmemory ”: и заменим её указав нужное значение:
Также в данном файле стоит обратить внимание на следующие параметры:
- maxclients — количество разрешенных клиентов;
- tcp-backlog — количество соединений которые могут находится в очереди, если все возможные соединения заняты;
- save — условия, при которых данные будут записываться на диск. Данные Redis хранятся в оперативной памяти и в зависимости от значений save сохраняются на диск, что замедляет производительность, но повышает надежность хранения данных. Условию save передается два значение: количество секунд и количество изменений, если за указанное количество происходит указанное количество изменений, то данные будут сохранены на диск. По умолчанию параметры выглядят так:
save 900 1 — сохранить, если за 900 секунд будет хотя бы одно изменение;
save 300 10 — сохранить, если за 300 секунд будет хотя бы 10 изменений;
save 60 10000 — сохранить, если за 60 секунд будет 10000 и более изменений.
Вы можете редактировать текущие правила или удалять их. Вы можете просто закомментировать их (поставить в начале строки #), в этом случае будет достигнута максимальная производительность, т. к. данные не будут записываться на диск, но в случае перезагрузки сервера или Redis все данные будут утеряны.
После внесения каких-либо изменений в конфигурационный файл Redis необходимо перезапустить.
Заключение
Теперь Вы знаете, как правильно устанавливать и настраивать Redis. Больше информации о конфигурации Redis сервера Вы можете получить из его документации:
Запуск Redis в Windows 10
Как узнать, есть ли у меня Windows 10 с WSL?
Чтобы ответить на вопрос «Какая версия Windows работает на моем ПК? «Нажмите клавишу управления Windows + R, введите «winver», затем нажмите«ОК». Начиная с версии 10, у вас есть команда под названием «wslconfig». В ней перечислены дистрибутивы и элементы управления, которые начинаются с ввода «bash». Попробуйте!
Как настроить WSL!
- Чтобы включить подсистему Windows для Linux, следуйте инструкциям в документах Microsoft. Краткая версия: в Windows 10 Microsoft заменяет командную строку PowerShell в качестве оболочки по умолчанию. Откройте PowerShell в качестве администратора и запустите эту команду, чтобы включить подсистему Windows для Linux (WSL):
- Перезагрузите Windows после внесения изменений, которые вам нужно сделать только один раз.
- Загрузите и установите один из поддерживаемых дистрибутивов Linux из магазина Microsoft .
- Ubuntu 18.04 (устанавливает Redis v4.09)
- Kali Linux (устанавливает Redis v4.10)
- Debian GNU/Linux (устанавливает Redis v3.2.6)
Установка и тестирование Redis
- Запустите установленный дистрибутив из Windows Store и установите redis-сервер. Следующий пример работает с Ubuntu (вам нужно будет ждать инициализации и создать логин при первом использовании):
- Перезагрузите сервер Redis, чтобы убедиться, что он запущен:
- Выполните простую команду Redis, чтобы убедиться, что ваш сервер Redis запущен и доступен:
- Чтобы остановить сервер Redis:
Дальнейшая информация
- Как Linux работает в Windows 10? Вместо вызова ядра Linux системные вызовы (syscalls), которые используют эти немодифицированные библиотеки Linux, перенаправляются на Windows, который обрабатывает вызов вместо Linux. Дополнительные сведения о WSL см. в документации подсистемы Windows для Linux для MSDN .
- Как получить доступ к файлам, хранящимся в среде Linux? Если вы хотите редактировать файлы Windows в Windows и в Linux, сохраните свои файлы в /mnt/c/, чтобы вы могли редактировать их в любой ОС. Не используйте Windows для доступа в файловую систему Linux.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.