Redis

Redis 连接池配置方式已经在连接池里讲过,这里就不重复了,直接说使用方法。

基本操作

与原生 Redis 类操作方式基本一致,这里无需多说。

延迟收包

延迟收包的概念请查阅 Swoole 官方文档:https://wiki.swoole.com/wiki/page/587.html

延迟收包示例

如下代码所示,由于Redis速度非常快很难看出性能的差距,可以参考数据库中的延迟收包示例。

  1. $time = microtime(true);
  2. $res1 = PoolManager::getResource('redis');
  3. $res2 = PoolManager::getResource('redis');
  4. $db1 = $res1->getInstance();
  5. $db2 = $res2->getInstance();
  6. $defer1 = $db1->deferGet('imi:redis:test');
  7. $defer2 = $db2->deferGet('imi:redis:test');
  8. var_dump(microtime(true) - $time);

批量执行收包:

  1. $time = microtime(true);
  2. $res1 = PoolManager::getResource('redis');
  3. $res2 = PoolManager::getResource('redis');
  4. $db1 = $res1->getInstance();
  5. $db2 = $res2->getInstance();
  6. $defer1 = $db1->deferGet('imi:redis:test');
  7. $defer2 = $db2->deferGet('imi:redis:test');
  8. list($result1, $result2) = MuiltDefer::call($defer1, $defer2);
  9. var_dump(microtime(true) - $time);