流水线与Redis中的交易

玛纳斯·萨克塞纳(Manas Saxena)

当我们在Redis中使用事务时,它基本上流水线化了事务中的所有命令。当执行EXEC时,所有命令将一起执行,从而始终保持多个命令的原子性。

这与流水线不一样吗?

流水线和事务有何不同?另外,为什么Redis的单线程性质不足以满足要求?为什么我们明确需要流水线/事务?

真实账单

流水线主要是网络优化。从本质上讲,这意味着客户端可以缓冲一堆命令并将它们一次性发送到服务器。不保证命令在事务中执行。这样做的好处是为每个命令节省了网络往返时间。

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章