redis中的流水线与事务



当我们在Redis中使用一个事务时,它基本上是将事务中的所有命令管道化。当EXEC被激发时,所有命令都会一起执行,从而始终保持多个命令的原子性。

这不就是流水线吗?

流水线和事务有何不同?此外,为什么Redis的单线程特性还不够?为什么我们明确需要流水线/事务处理?

管道化主要是一种网络优化。它本质上意味着客户端缓冲一堆命令,并一次性将它们发送到服务器。这些命令不能保证在事务中执行。这里的好处是为每个命令节省网络往返时间。

Redis是单线程的,因此单个命令总是原子的,但来自不同客户端的两个给定命令可以按顺序执行,例如在它们之间交替执行。

然而,Multi/exec确保没有其他客户端在Multi/exec序列中的命令之间执行命令。

相关内容

  • 没有找到相关文章

最新更新