💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
Redis是一个TCP服务器,支持请求/响应协议。 在Redis中,请求通过以下步骤完成: * 客户端向服务器发送查询,并从套接字读取,通常以阻塞的方式,用于服务器响应。 * 服务器处理命令并将响应发送回客户端。 如果需要一次执行多个redis命令,以往的方式需要发送多次命令请求,有redis服务器依次执行,并返回结果, 为了解决此类问题,设计者设计出了redis管道命令: * 客户端可以向服务器发送多个请求,而不必等待回复,并最终在一个步骤中读取回复,从而大大增加了协议性能 **管道** ~~~ $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth("root"); $redis->pipeline(); for ($i = 0; $i < 3; $i++) { $key = "key{$i}"; $redis->get($key); } echo PHP_EOL; $result = $redis->exec(); print_r($result); ~~~ **和事务结合** ~~~ $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $redis->auth("root"); $pipe = $redis->multi(\Redis::PIPELINE); for ($i = 0; $i < 3; $i++) { $key = "key{$i}"; $pipe->get($key); } echo PHP_EOL; $result = $pipe->exec(); print_r($result); ~~~ 参数说明: Redis::MULTI或Redis::PIPELINE. 默认是 Redis::MULTI Redis::MULTI:将多个操作当成一个事务执行 Redis::PIPELINE:让(多条)执行命令简单的,更加快速的发送给服务器,但是没有任何原子性的保证 ~~~ $redis->multi(Redis::MULTI);//开启事务,事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令在一个原子时间内执行。 $redis->multi(Redis::PIPELINE);//开启管道,事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令在一个原子时间内执行。 ~~~