Predis 和 PhpRedis

前些日子,为启用 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 技术 对于减少网络时延很有效;
pipeline();

    /* GET or SET */
    if (rand() % 2 == 0) {
      $redis->set($key, rand());
    } else {
      $redis->get($key);
    }
  }
  • How fast is Redis?
  • Redis: How does PRedis compare with phpredis?
  • About Predis and benchmarks: why a pure-PHP Redis client anyway?
    Predis 作者 nrk 对 Aleksey's Benchmarking Memcached and Redis Clients 的辩析文章;
两者不能兼容共存?

-?

你可能感兴趣的:(Predis 和 PhpRedis)