117471
Goto Top

Php redis an Socket binden?

Hallo,

kann ich via php5 auch redis-Server über Socket ansprechen?

In den Beispielen, die ich bis jetzt gefunden habe, wird redis immer an 127.0.0.1 gebunden und dann via TCP angesprochen.

Wie lautet die genaue Syntax für die php.ini?

Gruß,
Jörg

Content-Key: 336966

Url: https://administrator.de/contentid/336966

Printed on: April 16, 2024 at 09:04 o'clock

Member: Frank
Solution Frank May 05, 2017 updated at 14:02:16 (UTC)
Goto Top
Hi,

am Besten damit:
$redis = new Redis();
$result = $redis->connect('/var/run/redis.sock');  
(je nach dem wo der redis.sock zu finden ist: "locate redis.sock").

Siehe dazu auch: https://github.com/phpredis/phpredis#connection

Ich denke nicht, das die php.ini der richtige Ort dafür ist. Wenn du die Redis PHP-Pecl Extension installiert hast, kannst du direkt auf das Redis Object zugreifen.

Bei einem Zugriff per Host sieht das so aus:
$redis = new Redis();
$result = $redis->connect($redis_host, $redis_port);

Das alles sollte du natürlich in eine Exception setzen. Beispiel:
try {
   $redis = new Redis();
   $result = $redis->connect('/var/run/redis.sock');  
   if ($result==false) {
       throw new RedisException(“Socket cannot be opened”);
   }
} catch (Exception $e) {
    echo 'Error: ',  $e->getMessage();  
}

Im Übrigen ist der Zugriff auf Redis per Socket deutlich schneller als über einen Host und Port.

Gruß
Frank
Mitglied: 117471
117471 May 05, 2017 at 14:15:46 (UTC)
Goto Top
Hallo,

dankeschön face-smile

Das wäre schon mal "die halbe Miete" face-smile

Gruß,
Jörg