Php pecl memcached ubuntu

Рука помощи

Memcached можно использовать в популярной CMS WordPress, подключив соответствующий плагин. Также данноt кеширование используется в работе таких «гигантов» сети, как Википедия (http://www.wikipedia.org/) и Живом журнале (https://www.livejournal.com/)

В чем же преимущество Memcached? Гораздо быстрее «достать» готовый результат работы скрипта или результат выполнения запроса к базе данных из оперативной памяти, чем выполнять данные вычисления. Особенно это касается тех случаев, когда одна и та же операция повторяется и ее результат практически не изменен (например формирование меню навигации для нескольких нескольких групп пользователей), когда у Вас на сайте 1000 посетителей в день, разница в скорости работы может быть не заметна, но когда количество посетителей превысит 10 000, кеширование ряда элементов сможет существенно снизить нагрузку на сервер.

1. Установка и настройка Memcached

  • memcached – сам сервер
  • libmemcached-dev – библиотека для подключения к серверу и работы с ним

Конфигурационный файл /etc/memcached.conf

Основные параметры, на которые я рекомендую обратить внимание

-d # Указывает, что Memcached работает в режиме демона

logfile /var/log/memcached.log #Ведем лог использования, полезно при отладке работы скриптов

-m 64 # Объем памяти в Мб, доступный для работы Memcached, устанавливайте это значение в зависимости от доступной оперативной памяти. При установке значения данного параметра следует учитывать сколько оперативной памяти используют другие сервисы (например Базы данных). Я предпочитаю устанавливать около 10-12% от объема оперативной памяти (для 4 Гб ОЗУ – 256 Мб)

-p 11211 # Номер порта, на котором работает Memcached

-u memcache # С под какого пользователя запускается сервис

-l 127.0.0.1 # Какие IP-адреса слушает, при доступе только с локального хоста – оставляйте без изменений, если доступ необходим с внешних устройств укажите IP-адрес сетевого интерфейса или закомментируйте

# -M # данный параметр отвечает за действия с кэшированными данными, когда закончится память. По умолчанию будут удалятся самые старые записи, если его включить, за состоянием памяти сервера нужно будет следить в ручном режиме и в случае когда вся доступная память будет занята – будете получать ошибку. Не рекомендую включать данный параметр.

После завершения изменения файла конфигурации сервис нужно перезапустить.

Проверить работоспособность Memcached можно, подключившись к нему через Telnet

$ telnet localhost 11211

Trying ::1.

Trying 127.0.0.1.

Connected to localhost.

Escape character is ‘^]’.

set foo 1 60 4

test

STORED

get foo

VALUE foo 1 4

test

END

^]

telnet> Connection closed.

set foo 1 60 4 – создаю запись foo со сроком жизни в 60 секунд (0 – без ограничения по времени, до удаления системой), длинной в 4 байта, следующей командой вводится значение, в примере: test

get foo – получаю значение записи с именем foo

На этом завершим знакомство с Memcached через командную строку

2. Установка расширения PHP для работы с Memcached

Данное расширение устанавливается при помощи утилиты pecl

Будьте внимательны: в репозитории pecl есть 2 расширения с очень похожими названиями: memcached (рабочий вариант) и memcache (не поддерживается с 2013 года)

На заданный вопрос о директории нажимаем Enter

Для корректной установки и работы необходимо, чтобы был установлен пакет libmemcached-dev

Включаем установленное расширение в PHP

echo «extension=memcached.so» >> /etc/php/7.0/mods-available/memcached.ini

phpenmod memcached

service apache2 restart

Открываем в браузере страницу с выводом php_info(); и ищем секцию «memcached», должно вывести приблизительно следующее:

3. Пример использования

Ниже привожу листинг скрипта, в котором показаны основы работы с некоторыми пояснениями

# Создаем объект для работы с Memcached

$memcached = new Memcached();

# Подключаемся к нашему серверу, можно добавить несколько серверов. В нашем примере добавляем один и работать будем с одним

$memcached->addServer(«localhost», 11211);

# Для добавления записи используется 3 процедуры add() set() и replace()

# add() — добавляет новую запись, в случае, если запись с таким ключом существует, вернет false

# set() — устанавливает значение записи по ключу, на ее работу не влияет, существует запись или нет

# replace() — заменят значение существующие записи, если запись не существует, вернет false

# Ниже примеры для добавления числа, строки, массива и объекта. Метод getResultMessage() возвращает сообщение с результатом выполнения

echo ($memcached->add(«its_integer», rand(0, 1000))) ? «Добавили число» : «Ошибка добавления числа «.$memcached->getResultMessage() ;

echo ‘
‘;

echo ($memcached->set(«its_string», «test string. «)) ? «Добавили строку» : «Ошибка добавления строки «.$memcached->getResultMessage() ;

echo ‘
‘;

echo ($memcached->replace(«its_array», array(«v1″=> rand(0, 1000), «v2″=>»test»))) ? «Добавили массив» : «Ошибка добаления массива «.$memcached->getResultMessage() ;

echo ‘
‘;

echo ($memcached->set(«its_object», new stdClass())) ? «Добавили объект» : «Ошибка добавления объекта «.$memcached->getResultMessage();

echo ‘
‘;

# для получения записи используется get() , для получения одного значения и getMulti() для получения массива значений по перечню ключей

var_dump($memcached->get(«its_integer» ));echo ‘
‘;

var_dump($memcached->get(«its_string» ));echo ‘
‘;

var_dump($memcached->getMulti(array(«its_array»,»its_object») ));echo ‘
‘;

#Удаляем запись по ключу, если нужно полностью очистить все записи, используем flush()

$memcached->delete(«its_integer»);

# отключаемся от сервера

$memcached->quit ();

?>

Добавили число

Добавили строку

Добавили массив

Добавили объект

int(36)

string(14) «test string. «

array(2) < ["its_array"]=>array(2) < ["v1"]=>int(753) [«v2»]=> string(4) «test» > [«its_object»]=> object(stdClass)#2 (0) < >>

Для ознакомления со всеми функциями и их параметрами рекомендую ознакомиться с официальной справкой http://php.net/manual/ru/class.memcached.php

Если у Вас возникли вопросы, задавайте их в комментариях

Источник

How to Install Memcached on Ubuntu 18.04 & 16.04 LTS

Memcached is a distributed memory object caching system which stored data in memory on key-value basis. It is very useful for optimizing dynamic websites and enabled speed by caching objects in memory. This article will help you to install Memcached with PHP Memcache PECL extension on Ubuntu 18.04, 16.04 and 14.04 systems.

Step 1 – Install Memcached

First of all, update Apt package cache on your system then install Memcached service on your system. Execute below commands from command prompt.

sudo apt-get update sudo apt-get install memcached

Step 2 – Configure Memcached

You can find the details information about Memcache configuration here. For inital level configuration check for the following settings under Memcache configuration file /etc/memcached.conf.

  • -d => Run Memcached in deamon mode. You can use this option to configure your Memcached server to run as service.
  • -m => Define the maximum number of Memory can be used by Memcached deamon. (default: 64 MB)
  • -p => Defind port for Memcached to listen on. (default: 11211)
  • -l => Defind the IP address to Memcached listen on. Set 0.0.0.0 to listen on all IPs(enterfaces) configured on system.

After making changes, restart the Memcached service.

Step 3 – Verify Memcache Setup

Use the following command to check and verify that Memcached service is running properly on your system. This will show you the current statstics of your Memcached server. So the values may be differ that below results.

echo "stats settings" | nc localhost 11211
STAT maxbytes 134217728 STAT maxconns 1024 STAT tcpport 11211 STAT udpport 11211 STAT inter 127.0.0.1 STAT verbosity 0 STAT oldest 0 STAT evictions on STAT domain_socket NULL STAT umask 700 STAT growth_factor 1.25 STAT chunk_size 48 STAT num_threads 4 STAT num_threads_per_udp 4 STAT stat_key_prefix : STAT detail_enabled no STAT reqs_per_event 20 STAT cas_enabled yes STAT tcp_backlog 1024 STAT binding_protocol auto-negotiate STAT auth_enabled_sasl no STAT item_size_max 1048576 STAT maxconns_fast no STAT hashpower_init 0 STAT slab_reassign no STAT slab_automove 0 STAT lru_crawler no STAT lru_crawler_sleep 100 STAT lru_crawler_tocrawl 0 STAT tail_repair_time 0 STAT flush_enabled yes STAT hash_algorithm jenkins STAT lru_maintainer_thread no STAT hot_lru_pct 32 STAT warm_lru_pct 32 STAT expirezero_does_not_evict no END

Step 4 – Install Memcached PHP Module

Now install latest PHP from ppa:ondrej/php PPA on your Ubuntu system. If you have already installed PHP on your system, just skip PHP installation commands below.

sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install -y php php-dev php-pear libapache2-mod-php

Now install PHP Memcached module on your system. The below command will also do the required configuration.

sudo apt-get install -y php-memcached

After completing the installation, you must restart the Apache service.

sudo service apache2 restart

Check if Memcache php extension is enabled and working properly. Create a info.php file using following code

Источник

Php pecl memcached ubuntu

Этот модуль » PECL не поставляется вместе с PHP. Информация по установке этого модуля PECL может быть найдена в главе руководства Установка PECL модулей. Дополнительная информация, такая как новые версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, может быть найдена здесь: » https://pecl.php.net/package/memcache.

Замечание:

Существует возможность запретить использование memcache в качестве обработчика сессий (session handler). Команда ‘pecl install’ выдаёт об этом запрос (по умолчанию включено). Кроме того, при статической компиляции в PHP для этой цели возможно использование опции конфигурации —disable-memcache-session.

User Contributed Notes 6 notes

I hope this will help someone,
Context: I wanted to use memcache
like this:

but composer suggests me to install the extension
«ext-memcache»: «*»,

but that one didn’t want to work, so I installed

sudo apt install php7.4-memcache
sudo apt install php7.4-memcached

It is very important to note when reading the information supplied by others on this page that there are two *distinct* memcache PHP implementations for the service «memcached».

1) pecl-memcache
2) pecl-memcached

This page is for the first, pecl-memcache.

If you are looking for pecl-memcached information, visit here:

On Slackware, after copilling it, you should copy the file /module/memcache.so to /usr/lib/httpd/modules. Then, the instruction extension=memcache.so must be added into the file /etc/httpd/php.ini

Restart the httpd and it should work!

yum install php-pecl-memcache

#if apt-get, rpm, or yum doesn’t work
cd /usr/src/
wget http://pecl.php.net/get/memcache-2.2.4.tgz
tar -zxvf memcached-2.2.4.tgz
cd memcached-2.2.4
phpize && ./configure —enable-memcache && make
cp modules/memcache.so /usr/lib/php/modules/

# Note: packaged extension modules are now loaded via the .ini files
# found in the directory /etc/php.d
touch /etc/php.d/memcached.ini
echo ‘extension=memcache.so’ > /etc/php.d/memcached.ini

If you have error with libtool version after make — way to install:
phpize —clean && phpize
rm aclocal.m4
aclocal
autoconf
./configure
make
make install
[memcache-2.2.6, gentoo.x86-64]

Источник

Читайте также:  Add filter functions php
Оцените статью