Configurare memcached su CentOS

Questa sezione fornisce istruzioni per installare memcached su CentOS. Per ulteriori informazioni, consultare wiki memcached.

INFO
L’Adobe consiglia di utilizzare l’ultima versione stabile di memcached (attualmente 3.1.3 per memcached).

Poiché PHP non dispone di supporto nativo per memcache, è necessario installare un'estensione affinché PHP possa utilizzarla. Sono disponibili due estensioni PHP ed è importante decodificare quali utilizzare:

  • memcache (d non disponibile) - un'estensione precedente ma popolare che non viene mantenuta regolarmente.
    Il memcache estensione attualmente non lavorare con PHP 7. Consulta Documentazione PHP per memcache.

    Il nome esatto è php-pecl-memcache per CentOS.

  • memcached (con und) - un'estensione più recente e mantenuta compatibile con PHP 7. Consulta Documentazione PHP per memcached.

    Il nome esatto è php-pecl-memcached per CentOS.

Installare e configurare memcached su CentOS

Per installare memcached su CentOS, esegui le seguenti attività come utente con root privilegi:

  1. Installare memcached e le relative dipendenze:

    code language-bash
    yum -y update
    
    code language-bash
    yum install -y libevent libevent-devel
    
    code language-bash
    yum install -y memcached
    
    code language-bash
    yum install -y php-pecl-memcache
    
    note info
    INFO
    La sintassi dei comandi precedenti potrebbe dipendere dagli archivi di pacchetti utilizzati. Ad esempio, se si utilizza webtatic e PHP 5.6, immettere: yum install -y php56w-pecl-memcache. Utilizzare yum search memcache|grep php per trovare il nome del pacchetto appropriato.
  2. Modificare l’impostazione di configurazione memcached per CACHESIZE e OPTIONS:

    1. Apri /etc/sysconfig/memcached in un editor di testo.

    2. Individua il valore per CACHESIZE e modificarlo in almeno 1 GB. Ad esempio:

      code language-config
      CACHESIZE="1GB"
      
    3. Individua il valore per OPTIONS e cambiarlo in localhost o 127.0.0.1

  3. Salva le modifiche apportate a memcached ed esci dall’editor di testo.

  4. Riavvia memcached.

    code language-bash
    service memcached restart
    
  5. Riavvia il server web.

    Per Apache:

    code language-bash
    service httpd restart
    
  6. Procedi alla sezione successiva.

Verifica del funzionamento di memcached prima di installare Commerce

L’Adobe consiglia di testare memcached per verificare che funzioni prima di installare Commerce. Questa operazione richiede solo pochi minuti e può semplificare la risoluzione dei problemi in un secondo momento.

Verificare che memcached sia riconosciuto dal server web

Per verificare che memcached sia riconosciuto dal server web:

  1. Creare un phpinfo.php file nella directory principale dei documenti del server web:

    code language-php
    <?php
    // Show all information, defaults to INFO_ALL
    phpinfo();
    
  2. Vai a quella pagina nel browser web.

    Ad esempio: http://192.0.2.1/phpinfo.php

  3. Accertati che memcache venga visualizzato come segue:

Conferma memcache riconosciuta dal server Web

Verifica di utilizzare memcached versione 3.0.5 o successiva.

Se memcache non viene visualizzata, riavviare il server Web e aggiornare la pagina del browser. Se ancora non viene visualizzato, verificare di aver installato php-pecl-memcache estensione.

Creare un test memcache costituito da un database MySQL e da uno script PHP

Il test utilizza un database, una tabella e dati MySQL per verificare che sia possibile recuperare i dati del database e memorizzarli in memcache. Uno script PHP esegue prima la ricerca nella cache. Se il risultato non esiste, lo script esegue una query sul database. Dopo che la query è stata soddisfatta dal database originale, lo script memorizza il risultato in memcache utilizzando set comando.

Ulteriori dettagli su questo test

Creare il database MySQL:

mysql -u root -p

Alla mysql immettete i seguenti comandi:

create database memcache_test;
GRANT ALL ON memcache_test.* TO memcache_test@localhost IDENTIFIED BY 'memcache_test';
use memcache_test;
create table example (id int, name varchar(30));
insert into example values (1, "new_data");
exit

Crea cache-test.php nella directory principale dei documenti del server web:

$meminstance = new Memcached();

$meminstance->addServer('<memcached hostname or ip>', <memcached port>);

$query = "select id from example where name = 'new_data'";
$querykey = "KEY" . md5($query);

$result = $meminstance->get($querykey);

if (!$result) {
   try {
        $dbh = new PDO('mysql:host=localhost;dbname=memcache_test','memcache_test','memcache_test');
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $result = $dbh->query("select id from example where name = 'new_data'")->fetch();
        $meminstance->set($querykey, $result, 0, 600);
        print "got result from mysql\n";
        return 0;
    } catch (PDOException $e) {
        die($e->getMessage());
    }
}
print "got result from memcached\n";
return 0;

Dove <memcached hostname or ip> è localhost, 127.0.0.1o il nome host o l’indirizzo IP memcache. Il <memcached port> è la porta di ascolto; per impostazione predefinita, 11211.

Esegui lo script dalla riga di comando.

cd <web server docroot>
php cache-test.php

Il primo risultato è got result from mysql. Ciò significa che la chiave non esiste in memcached ma è stata recuperata da MySQL.

Il secondo risultato è got result from memcached, che verifica che il valore sia memorizzato correttamente in memcached.

Infine, puoi visualizzare le chiavi memcache utilizzando Telnet:

telnet localhost <memcache port>

Al prompt, immetti

stats items

Il risultato è simile al seguente:

STAT items:3:number 1
STAT items:3:age 1075
STAT items:3:evicted 0
STAT items:3:evicted_nonzero 0
STAT items:3:evicted_time 0
STAT items:3:outofmemory 0
STAT items:3:tailrepairs 0

Scaricare la memoria cache e uscire da Telnet:

flush_all
quit

Informazioni aggiuntive sul test Telnet

recommendation-more-help
386822bd-e32c-40a8-81c2-ed90ad1e198c