هل هناك أي دعم عميل Redis PHP؟
-
26-09-2019 - |
سؤال
كعنوان ، أبحث عن عميل Redis PHP يدعم الاتصال المستمر ، لأن تطبيق الويب الخاص بي يتلقى الكثير من الطلبات (كل طلب ، سيضع عنصرًا في قائمة انتظار Redis) وأريد تجنب إنشاء اتصال جديد كل طلب.
المحلول
لست متأكدًا مما إذا كان هذا مدعومًا ولكن يجب عليك بالتأكيد النظر إلى Predis و Rediska ، وهما هما (وخاصة Predis AFAIK) هما أفضل عملاء Redis المتاحين.
نصائح أخرى
phpredis يدعم حاليا الاتصالات المستمرة. باستخدام PHP 7.0 و PHPREDIS 3.0 ، إجراء اتصال مستمر مع pconnect()
مثله:
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);
}
هو أسرع حوالي 10 مرات (9.6 مللي ثانية مقابل 0.83 مللي ثانية لكل اتصال) من 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);
}
ملاحظة: "هذه الميزة غير متوفرة في الإصدارات الخيوط". (أنا أعمل تحت IIS على Windows ، لذلك أقوم بتشغيل إصدار NTS.)
Predis يدعم الاتصالات المستمرة باستخدامه PhpiredisStreamConnection
مع ال persistent=1
بناء جملة العلم منذ V0.8.0:
<?php
$client = new Predis\Client('tcp://127.0.0.1?persistent=1', array(
'connections' => array(
'tcp' => 'Predis\Connection\PhpiredisStreamConnection',
'unix' => 'Predis\Connection\PhpiredisStreamConnection',
),
);
Predis يدعم الاتصال المستمر. تحتاج فقط إلى إضافة paramater المستمرة مثل 1.
يمكنك استخدام الرمز أدناه
$client = new Predis\Client(array(
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 15,
'persistent'=> 1
));
بدلاً من
$client = new Predis\Client('tcp://127.0.0.1:6379?database=15');
يمكنك العثور على المزيد من المعلمات للاتصال هنا: https://github.com/nrk/predis/wiki/Connection-Parameters
يدعم PHP-REDIS الاتصالات المستمرة لأنه يستخدم امتداد PHP مكتوب في C والذي يمنحه آلية لمشاركة الاتصالات بين الطلبات. انظر إلى الوثائق على popen و pconnect.
predis لا تستطيع دعم الاتصالات المستمرة لأنها لا تشارك PHP و PHP بنسبة 100 ٪ بين كل طلب.