[Alleen PaaS]{class="badge informative" title="Is alleen van toepassing op Adobe Commerce op Cloud-projecten (door Adobe beheerde PaaS-infrastructuur) en op projecten in het veld."}

In cache plaatsen op CentOS

In deze sectie vindt u instructies voor het installeren van een memcachegeheugen op CentOS. Voor extra informatie, raadpleeg ​ memcached wiki ​.

INFO
Adobe raadt u aan de nieuwste, stabiele memcacheversie te gebruiken (momenteel 3.1.3 voor memcaching).

Omdat PHP geen native ondersteuning heeft voor memcache, moet je een extensie installeren voor PHP om deze te kunnen gebruiken. Er zijn twee PHP-extensies beschikbaar en het is belangrijk te decoderen welke extensie moet worden gebruikt:

In cache geplaatst geheugen installeren en configureren op CentOS

Als u in een cache geplaatste bestanden wilt installeren op CentOS, voert u de volgende taken uit als een gebruiker met root -rechten:

  1. Installeer in het geheugen opgeslagen onderdelen en de afhankelijkheden ervan:

    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
    De syntaxis van de voorgaande opdrachten kan afhankelijk zijn van de opslagplaatsen voor pakketten die u gebruikt. Als u bijvoorbeeld webtatisch en PHP 5.6 gebruikt, voert u yum install -y php56w-pecl-memcache in. Gebruik yum search memcache|grep php om de juiste pakketnaam te zoeken.
  2. Wijzig de instelling voor de configuratie-instellingen voor CACHESIZE en OPTIONS in de cache:

    1. Open /etc/sysconfig/memcached in een teksteditor.

    2. Zoek de waarde voor CACHESIZE en verander deze in ten minste 1 GB. Bijvoorbeeld:

      code language-config
      CACHESIZE="1GB"
      
    3. Zoek de waarde voor OPTIONS en wijzig deze in localhost of 127.0.0.1

  3. Sla de wijzigingen in memcached op en sluit de teksteditor af.

  4. Start de cache opnieuw.

    code language-bash
    service memcached restart
    
  5. Start de webserver opnieuw.

    Voor Apache:

    code language-bash
    service httpd restart
    
  6. Ga verder met de volgende sectie.

De werking van een geheugen controleren voordat u Commerce installeert

Adobe raadt u aan een memcachegeheugen te testen om te controleren of dit werkt voordat u Commerce installeert. Dit neemt slechts een paar minuten in beslag en kan het oplossen van problemen later vereenvoudigen.

Controleren of het in de cache geplaatste item wordt herkend door de webserver

Om te controleren dat het in een cache plaatsen wordt herkend door de webserver:

  1. Maak een phpinfo.php -bestand in de hoofdmap van de webserver:

    code language-php
    <?php
    // Show all information, defaults to INFO_ALL
    phpinfo();
    
  2. Ga naar die pagina in uw webbrowser.

    Bijvoorbeeld: http://192.0.2.1/phpinfo.php

  3. Controleer of de geheugencache als volgt wordt weergegeven:

Bevestig memcache wordt erkend door de Webserver

Controleer of u versie 3.0.5 of hoger uit het geheugen gebruikt.

Als het geheugen niet wordt weergegeven, start u de webserver opnieuw en vernieuwt u de browserpagina. Als de extensie nog steeds niet wordt weergegeven, controleert u of u de extensie php-pecl-memcache hebt geïnstalleerd.

Een memcache-test maken die bestaat uit een MySQL-database en PHP-script

De test gebruikt een gegevensbestand MySQL, een lijst, en gegevens om te verifiëren u de gegevensbestandgegevens kunt terugwinnen en het in geheugen opslaan. Een PHP script zoekt eerst naar de cache. Als het resultaat niet bestaat, vraagt het manuscript gegevensbestand. Nadat de query door de oorspronkelijke database is uitgevoerd, slaat het script het resultaat op in het geheugen, met de opdracht set .

​ Meer details over deze test ​

Maak de MySQL-database:

mysql -u root -p

Voer bij de aanwijzing mysql de volgende opdrachten in:

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

Maak cache-test.php in de hoofdmap van uw webserver:

$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;

Waar <memcached hostname or ip> localhost , 127.0.0.1 of de hostnaam of het IP-adres van de memcache is. De <memcached port> is de listen poort; standaard is dit 11211 .

Voer het script uit vanaf de opdrachtregel.

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

Het eerste resultaat is got result from mysql . Dit betekent dat de sleutel niet in het geheugen werd opgeslagen maar uit MySQL werd teruggewonnen.

Het tweede resultaat is got result from memcached , waarmee wordt gecontroleerd of de waarde is opgeslagen in de cache.

Tot slot kunt u de memachetoetsen bekijken gebruikend Telnet:

telnet localhost <memcache port>

Bij de herinnering, ga

stats items

Het resultaat is vergelijkbaar met het volgende:

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

Maak de geheugenopslag leeg en sluit Telnet weg:

flush_all
quit

​ Aanvullende informatie over de test van Telnet ​

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