美文网首页
Predis 和 PhpRedis

Predis 和 PhpRedis

作者: michael_jia | 来源:发表于2016-11-19 23:11 被阅读403次

前些日子,为启用 laravel,引出来使用 Predis 还是 PhpRedis 问题;这两者都是 PHP client for Redis;

PhpRedis
  • 作为 php 的一个扩展存在;
  • 编译出 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 编写的,速度快、内存小;
  • 努力实现每一个 redis 命令;
  • 可以作为 PHP Session handler
    phpredis can be used to store PHP sessions;
Predis
  • 纯 php 实现,速度慢、内存大;
  • 一个简单的对 redis 命令的包装(wrap);
  • 兼容性和弹性更好,支持几乎所有 redis 特性;
  • FAQ about performances
选用哪个?
  • 如果 redis 的 client 和 server 在一台机器,则由于没有网络时延,PhpRedis 的确快很多;
    如果不在同一台机器,则网络时延的因素对速度的影响是一个大头,Predis 的慢点就不是问题了;
  • pipeline 技术 对于减少网络时延很有效;
<?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);
    }
  }
两者不能兼容共存?

-?

相关文章

网友评论

      本文标题:Predis 和 PhpRedis

      本文链接:https://www.haomeiwen.com/subject/nstspttx.html