Frage

Wie der Titel, ich bin auf der Suche nach einem PHP-Redis-Client, der ständige Verbindung unterstützen, weil meine Web-Anwendung viele Anfragen empfängt (jede Anforderung, wird es ein Element in zu Redis Warteschlange gestellt), und ich möchte vermeiden schafft neue Verbindung auf jede Anfrage.

War es hilfreich?

Lösung

Nicht sicher, ob dies unterstützt wird, aber Sie sollten auf jeden Fall bei Predis und Rediska aussehen, diese zwei (insbesondere Predis AFAIK) sind die besten PHP Redis-Clients zur Verfügung.

Andere Tipps

PhpRedis unterstützt derzeit persistenten Verbindungen. Mit PHP 7.0 und 3.0 PhpRedis, eine ständige Verbindung machen mit pconnect() wie folgt aus:

for ($i=0;$i<1000;$i++) {
    $redis = new Redis();
    $result = $redis->pconnect('127.0.0.1'); 
    $redis->set("iterator",$i);
    $response=$redis->get("iterator");
    $redis->close();
    unset($redis);
}

ist etwa 10-mal schneller (9,6 ms vs 0,83 ms pro Verbindung) als connect() :

for ($i=0;$i<1000;$i++) {
    $redis = new Redis();
    $result = $redis->connect('127.0.0.1'); 
    $redis->set("iterator",$i);
    $response=$redis->get("iterator");
    $redis->close();
    unset($redis); 
}

Hinweis: „Diese Funktion ist in Gewinde Versionen nicht verfügbar“. (Ich bin unter IIS unter Windows ausgeführt wird, so dass ich die NTS-Version ausgeführt werden.)

unterstützt Predis persistente Verbindungen es der PhpiredisStreamConnection mit der persistent=1 Flag Syntax seit v0.8.0 mit:

<?php
$client = new Predis\Client('tcp://127.0.0.1?persistent=1', array(
    'connections' => array(
        'tcp'  => 'Predis\Connection\PhpiredisStreamConnection',
        'unix' => 'Predis\Connection\PhpiredisStreamConnection',
    ),
);

unterstützt Predis dauerhafte Verbindung. Sie müssen nur persistent Paramater als 1 hinzuzufügen.

können Sie den Code unten

verwenden
$client = new Predis\Client(array(
   'scheme'    => 'tcp',
   'host'      => '127.0.0.1',
   'port'      => 6379,
   'database'  => 15,
   'persistent'=> 1
));

statt

$client = new Predis\Client('tcp://127.0.0.1:6379?database=15');

Sie können mehr Parameter für die Verbindung finden Sie hier:   https://github.com/nrk/predis/wiki/Connection-Parameters

PHP-Redis unterstützen persistente Verbindungen, da es eine PHP-Erweiterung in C geschrieben verwendet, die ihm einen Mechanismus für den Austausch von Verbindungen zwischen den Anfragen gibt. Schauen Sie sich die Dokumentation auf popen und pconnect .

Predis kann nicht persistente Verbindungen unterstützen, weil es zwischen jeder Anforderung 100% PHP und PHP-Aktien nichts.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top