Predis 和 PhpRedis

前些日子,為啟用 laravel,引出來使用 Predis 還是 PhpRedis 問題;這兩者都是 PHP client for Redis;

PhpRedis
  • 作為 php 的一個(gè)擴(kuò)展存在;
  • 編譯出 redis.so,放到 extension_dir 下;
  • 在 php.ini 啟用(enable the module in the PHP config file);
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
extension = "redis.so"
  • C 編寫的,速度快、內(nèi)存?。?/li>
  • 努力實(shí)現(xiàn)每一個(gè) redis 命令;
  • 可以作為 PHP Session handler
    phpredis can be used to store PHP sessions;
Predis
  • 純 php 實(shí)現(xiàn),速度慢、內(nèi)存大;
  • 一個(gè)簡單的對 redis 命令的包裝(wrap);
  • 兼容性和彈性更好,支持幾乎所有 redis 特性;
  • FAQ about performances;
選用哪個(gè)?
  • 如果 redis 的 client 和 server 在一臺(tái)機(jī)器,則由于沒有網(wǎng)絡(luò)時(shí)延,PhpRedis 的確快很多;
    如果不在同一臺(tái)機(jī)器,則網(wǎng)絡(luò)時(shí)延的因素對速度的影響是一個(gè)大頭,Predis 的慢點(diǎn)就不是問題了;
  • pipeline 技術(shù) 對于減少網(wǎng)絡(luò)時(shí)延很有效;
<?php
 // http://odino.org/redis-slow-with-php-think-again/
  $start = microtime(true);
  for ($j = 0; $j < 10000; $j++) {
    $key = sprintf("key:%05d", $j);
    $redis->pipeline();

    /* GET or SET */
    if (rand() % 2 == 0) {
      $redis->set($key, rand());
    } else {
      $redis->get($key);
    }
  }
兩者不能兼容共存?

-?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,527評論 19 139
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 2,033評論 0 3
  • 1 Redis介紹1.1 什么是NoSql為了解決高并發(fā)、高可擴(kuò)展、高可用、大數(shù)據(jù)存儲(chǔ)問題而產(chǎn)生的數(shù)據(jù)庫解決方...
    克魯?shù)吕?/span>閱讀 5,708評論 0 36
  • 孩子所在的喬偉幼兒園其中一家長興致起,寫了一首記錄自己的孩子翼煬的詩詞,帶你來看下。 感恩時(shí)節(jié),留有習(xí)作,一時(shí)失察...
    黃秋嫻閱讀 206評論 0 0
  • 秋刀魚之味這部影片是由小津安二朗指導(dǎo)的家庭劇情片。講述了主角平山在妻子去世之后和2兒1女的生活。 大兒子平山宏一已...
    cakekiko閱讀 1,752評論 0 0

友情鏈接更多精彩內(nèi)容