117471

Php redis an Socket binden?

gelöstFrageLinux
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
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 336966

Url: https://administrator.de/forum/php-redis-an-socket-binden-336966.html

Ausgedruckt am: 06.05.2025 um 19:05 Uhr

Frank
Lösung Frank 05.05.2017 aktualisiert um 16:02:16 Uhr
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
117471
117471 05.05.2017 um 16:15:46 Uhr
Goto Top
Hallo,

dankeschön face-smile

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

Gruß,
Jörg