mac os php redis
How to Install Redis on Mac
Home » SysAdmin » How to Install Redis on Mac
Redis is an open-source data storage solution. It is primarily used as a database, cache storage, or message broker due to the way it stores key-value pairs.
Redis stands out with its flexibility and high performance, wide language support, and high availability.
In this tutorial, you will learn several ways to install and configure Redis on your Mac computer.
Installing Redis on Mac
There are two ways to install Redis on Mac:
Homebrew automates most of the installation process, making it quick and easy to add Redis to your system. It also provides more options when configuring Redis, and makes uninstalling it a lot simpler.
Option 1: Install Redis on Mac With Homebrew
If you don’t have Homebrew, install it with the following command:
If you already have a copy of Homebrew installed, update it by using:
With an up-to-date version of Homebrew, install Redis by using the command:
Using this command produces the following output:
Option 2: Install Redis on Mac Without Homebrew
The second method enables you to install Redis on Mac without Homebrew.
To install Redis without Homebrew, use the following commands:
The remaining commands install the Redis software.
Note: NoSQL databases, like Redis, are meant to run efficiently in distributed clusters that scale out horizontally. Using Docker to deploy Redis in a container makes horizontal scaling a routine, straightforward process.
Starting and Configuring Redis on Mac
Depending on the installation method used, there are two ways to launch Redis on your system.
If you installed Redis using Homebrew, use Homebrew to launch it:
If you installed Redis without Homebrew, use the following code:
Modify your Redis instance by using the commands listed below.
Launch Redis on Boot
To have Redis launch on system boot, use:
Stop Redis from Launching on Boot
To stop Redis from starting upon system boot, use:
Start Redis Server
There are two ways to start your Redis server:
When starting Redis with the launchctl command, use the following syntax:
If you want to start Redis using the configuration file, use:
Test if Redis Server is Running
Ping your Redis server to verify if it’s running:
The system responds with a ‘pong’ if the server is up and running.
Uninstalling Redis on Mac
To uninstall Redis, use Homebrew with the following command:
Note: Remember to also remove Redis files from your hard-drive by using:
After following this tutorial, you now know how to install, configure, and uninstall Redis on your Mac computer.
For more helpful tips on using Redis, check out our comprehensive guide to Redis data types.
Mac os php redis
Having trouble with php redis extension installation. \n
i searched on internet but every fix i founded didn’t work. \n
i tried sudo pecl install redis but i had : \n
I also tried before adding extension=redis.so in my php.ini and restart php with brew services restart php : \n
Not works as well. still have the error : \n
Why don’t you give Homestead or Docker a try? \n
both are also pretty slow on mac os x \n \n
Same for me, but I’m willing to accept that tradeoff to keep my host machine as clean as possible. \n
I tried vessel but I have a problem with storage link \n \n
I’ve never tried vessel but I’m using docker-compose and everything is working for me. You can even build simple container which just runs everything within that single container to make things easy and just add Redis and avoid any macOS Redis installation issues. \n»,»bodyInMarkdown»:»>both are also pretty slow on mac os x\n\nSame for me, but I’m willing to accept that tradeoff to keep my host machine as clean as possible.\n\n>I tried vessel but I have a problem with storage link\n\nI’ve never tried vessel but I’m using `docker-compose` and everything is working for me. You can even build simple container which just runs everything within that single container to make things easy and just add Redis and avoid any macOS Redis installation issues.»,»replies»:[],»user»:<"id":18960,"username":"bugsysha","avatar":"\/\/www.gravatar.com\/avatar\/8fce0e9456c83a151bddff10993e2536?s=100&d=https%3A%2F%2Fs3.amazonaws.com%2Flaracasts%2Fimages%2Fforum%2Favatars%2Fdefault-avatar-28.png","experience":<"award_count":"454","level":50,"points":"540,785","pointsUntilNextLevel":"0">,»achievements»:[],»reported»:null,»profile»:<"github":"","twitter":"","full_name":null,"website":"","bio":null>,»dateSegments»:<"created_diff":"6 years ago">>,»likes»:[],»created_at»:»2020-01-23T09:47:35.000000Z»,»links»:<"delete":"\/discuss\/replies\/575189","like":"\/discuss\/replies\/575189\/likes","best_answer":"\/discuss\/conversations\/123308\/best">,»best_answer»:false,»dateSegments»:<"createdDiff":"1 year ago">>,<"id":575194,"conversation_id":123308,"body":"
I for simplest use cases \n
For PHP I have php.yml file with following: \n
For Node\/NPM I have node.yml file with following \n
Node containers do not run in background. They just execute the code and exit. \n
Just note that those use cases contain comments at the end of the line. For example \n
Default install on Mac OS X may not work with homebrew #468
Comments
phpguru commented Apr 26, 2014
This is not actually an issue per se, I just figured I’d put this note here in case someone else runs into the same. Someone will probably offer a better solution.
I’ve installed Redis, and both redis-server and redis-cli are working. I go to install phpredis and everything worked fine as well. I go to configure it by editing /private/etc/php.ini, add extension=redis.so and restart Apache. The Redis extension is not loading. I find another copy of php.ini at /usr/local/etc/php/5.3/php.ini and discover this is the one CLI uses (news to me!)
So I create /usr/local/etc/php/5.3/conf.d/redis.ini and put
Sweet! So my PHP CLI has phpredis loaded, but when I create a phpinfo( ) and load it from Apache there’s no Redis extension and I can’t for the life of me figure out why.
I put the same exact line,
into /private/etc/php.ini and get no love. Any idea what in the world is going on here? I am using Mac OS X 10.8.5 and the built-in Apache & PHP 5.3.28 that ship with Mac OS X. I’ve installed mcrypt, memcache, and a few other extensions without issue on this same laptop.
I should probably add that I’m using homebrew for lots of things on this box, and my extension dir is
placed redis.so here:
So, PHPRedis would not load under Apache until I did
Refreshing my localhost/info.php page and all is right again in the world.
The text was updated successfully, but these errors were encountered:
We are unable to convert the task to an issue at this time. Please try again.
The issue was successfully created but we are unable to update the comment at this time.
Установка Redis + Redis PHP + phpRedisAdmin на боевом сервере за 15 минут
Всем уже давно известно, что самые лучшие бинарные файлы — это те, которые были скомпилированы именно на этом компьютере. И, когда вопрос заходит о производительности, то компилирование компонентов на этом компьютере даст свое преимущество в скорости и стабильности.
В данной статье речь пойдет о том, как подготовить Redis, phpredis (С модуль для php) и 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!»
Redis собран, осталось зачистить мусор и унести редис в нужный каталог.
Унесем весь скомпилированный Redis в папку /usr/bin/redis. А чтоб запускать Redis-server, в /usr/bin создадим shell файл redis-server.
Уносим файлы Redis в /usr/bin/redis
Мы все еще остаемся в папке antirez-redis-04bba69, где лежат исходники
Мы скопировали все файлы от Redis и удалили папку с исходниками, она нам уже не нужна.
Будьте осторожны с последней командой! sudo для нее не нужен, папка и так в наших владениях.
Теперь нам нужно создать файл для запуска redis-server.
Для этого файла нужно дать право на исполнение.
Осталось взять redis.conf
Redis.conf загружен, осталось его настроить.
Заменяем в файле конфигурации
Запуск!
Если все было сделано правильно, то запускаем сервер
По идее вам должно показать приглашение от 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.
Докеризируем Socket.io, redis и php
Для передачи данных сервером на php клиенту можно использовать следующий алгоритм:
Исходный код проекта можно найти на github
Здесь я буду двигаться очень маленькими шагами.
В проекте будет использоваться связка nginx и php-fpm и начну я с настройки
nginx.
Настройка nginx
Начнем создавать docker-compose.yml в корневой папке нашего проекта.
Пересоздадим контейнер nginx
И вновь наблюдаем по в браузере по адресу http://localhost:4400 стандартное
приветствие nginx.
Внесем изменения
docker-compose.yml
Настройка php
Начнем с создания папок для хранения файлов настроек контейнера.
Далее создадим php/Dockerfile
И внесем изменения в docker-compose.yml
Осталось создать файл www/public/info.php со следующим кодом
Перезапустим наш контейнер
И теперь по адресу http://localhost:4400/info.php отображается информация о
настройках php.
Еще немного поэкспериментируем и создадим файл www/Test.php
А содержимое файла www/public/info.php заменим на следующее:
Настройка redis
Внесем изменения в docker-compose.yml
Чтобы протестировать подключение к redis изменим файл www/public/info.php
Теперь подключимся к серверу redis
Подпишемся на канал ‘eustatos’ (название произвольное, чтобы все работало,
долно совпадать с названием канала, которое мы определили в файле
www/public/info.php )
После всех этих приготовлений, переходим в браузере по адресу
http://localhost:4400/info.php и наблюдаем, как в терминале, где мы
подключались к redis появляются примерно следующие строки:
Значит мы стали еще ближе к нашей цели.
Настройка socket.io
Созадим папку, где будут лежать файлы нашего socket.io сервера
Внесем изменения в docker-compose.yml
Перейдем в папку socket
Установим необходимые пакеты
После этого добавим в файл socket/package.json строки
Создадим файл socket/index.js
Перезапустим наш контейнер
После этого в браузере по адресу http://localhost:5000 отображается «success».
Значит мы еще чуть ближе к нашей цели. Осталось совсем немного.
Изменим файл socket/index.js
На этом настройка контейнера socket.io завершена.
Настройка клиентского приложения
Клиентское приложение можно развернуть в любом из наших контейнеров, но
для чистоты эксперимента развернем его в отдельном контейнере.
Файлы клиентского приложения разместим в папке client
Создадим файл client/index.html
Перезапустим наш контейнер
А это значит, что наш сервер благополучно передал клиентскому приложению данные.