事务块 multi
redis中的 multi
方法,提供了一个队列用于缓存多个指令,在客户端调用 exec
后将该队列中的指令批量执行,执行过程中不会被其他指令干扰(具有原子性)。
客户端每发送一个指令后,客户端都需要等待服务端返回状态,以表示该指令是否已经添加到队列中。
在客户端调用 exec
后,redis将执行该队列中的所有指令,并按原顺序返回执行结果的数组。
PHP代码演示:
$redis->multi()
->set('key1', 'val1')
->get('key1')
->set('key2', 'val2')
->get('key2')
->exec();
返回数据:
array(
0 => true,
1 => 'val1',
2 => true,
3 => 'val2'
);
管道 pipeline
官方对于管道的说明 https://redis.io/docs/manual/pipelini