1、 Асинхронная установка службы redis
Руководство по вводу официальных документов Swool – > быстрый запуск – > асинхронный клиент redis
1. Swool использует асинхронное предварительное условие redis
- Услуги Redis
- Библиотека Hiredis(
X
) - Для компиляции swoole вам необходимо добавить
--enable-async-redis
(X
)
Будьте осторожны : если ваша версия swool выше 4.3, вам нужно только установить службу redis. Ни библиотека hiredis, ни перекомпиляция swool не требуется, поскольку была встроена версия выше 4.3.
2. Установка исходного кода redis
Загрузите последнюю версию с официального сайта redis на локальный, а затем извлеките ее.
Загружайте, извлекайте и компилируйте Redis с помощью:
$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz $ tar xzf redis-5.0.5.tar.gz $ cd redis-5.0.5 $ make
Скомпилированные двоичные файлы доступны в каталоге src. Запустите Redis с: Каталог извлечения Redis: ./redis-5.0.5/src/redis-сервер
$ src/redis-server
Вы можете взаимодействовать с Redis с помощью встроенного клиента:
$ src/redis-cli redis> set foo bar OK redis> get foo "bar"
3. Установка Hired (нет необходимости устанавливать выше swoole4.3)
Библиотека hiredis в конечном итоге компилируется в файл so и использует его.
Адрес для загрузки: https://github.com/redis/hire
Используйте команду для загрузки на локальный сервер, а затем извлеките:
$ wget https://github.com/redis/hiredis/archive/v0.14.0.tar.gz $ mv v0.14.0.tar.gz hiredis-v0.14.0.tar.gz $ tar xzf hiredis-v0.14.0.tar.gz $ cd hiredis-0.14.0
Сборка и установка:
$ make -j $ sudo make install $ sudo ldconfig
4. Перекомпилируйте swool (выше swool 4.3 перекомпиляция не требуется)
Войдите в каталог установочного пакета swool:
$ cd /work/study/softpackage/swoole
Чтобы просмотреть команду параметра настройки:
$ ./configure --help
Покажите:
... Optional Features and Packages: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) --with-libdir=NAME Look for libraries in .../NAME rather than .../lib --with-php-config=PATH Path to php-config php-config --enable-debug-log Enable swoole debug log --enable-trace-log Enable swoole trace log --enable-sockets Do you have sockets extension? --enable-openssl Use openssl? --enable-http2 Use http2.0? --enable-swoole Enable swoole support --enable-mysqlnd Do you have mysqlnd? --with-openssl-dir=DIR Include OpenSSL support (requires OpenSSL >= 0.9.6) --with-jemalloc-dir=DIR Include jemalloc support --enable-asan Enable asan --enable-gcov Enable gcov --enable-debug, compile with debug symbols --enable-shared=PKGS Build shared libraries default=yes --enable-static=PKGS Build static libraries default=yes --enable-fast-install=PKGS Optimize for fast installation default=yes --with-gnu-ld Assume the C compiler uses GNU ld default=no --disable-libtool-lock Avoid locking (might break parallel builds) --with-pic Try to use only PIC/non-PIC objects default=use both --with-tags=TAGS Include additional configurations automatic
Почему мы не можем найти его здесь –включить-асинхронный-redis Как насчет этого параметра? После проверки официальных документов swool выясняется, что использование hiredis из swool версии 4.3 больше не требует перекомпиляции. Swool был встроен и может использоваться напрямую. – – -!
Официальный сайт: https://wiki.swoole.com/wiki/
2, Реализация кода
Откройте службу redis:
$ src/redis-server
Откройте службу redis:
connect(REDIS_SERVER_HOST, REDIS_SERVER_PORT); $redis->setDefer(); $redis->set('key1', 'value'); $redis2 = new Swoole\Coroutine\Redis(); $redis2->connect(REDIS_SERVER_HOST, REDIS_SERVER_PORT); $redis2->setDefer(); $redis2->get('key1'); $result1 = $redis->recv(); $result2 = $redis2->recv(); var_dump($result1, $result2); });
Для печати:
$ php redis.php bool(true) string(5) "value"