Redis的pipeline和multi的区别是什么?

Redis的Pipeline和Multi/Exec虽然名称和功能相似,但实质完全不同。

Pipeline是指一次性执行多个命令,而Multi/Exec指在事务中执行的区别。

Pipeline和Multi/Exec的区别是什么?

管道

发送多个命令而无需等待结果。这样可以减少由网络引起的等待时间。在有多个客户端连接的情况下,根据时机,可能会插入其他命令在指定的Pipeline中的多个命令之间。

这是客户端库实现的功能,并不是Redis本身具有的功能。

redis.pipelined do
  redis.set(key, value)

  # ここに他のコマンドが入る可能性がある

  redis.set(key, value)
end

多种

在一个事务中执行多个命令。即使有多个客户端连接,也不会在指定为 Multi 的多个命令之间插入其他命令。

Multi表示开始,Exec意味着执行。这些功能是在Redis核心中实现的。

redis.multi do
  redis.set(key, value)

  # ここに他のコマンドが入る可能性はない

  redis.set(key, value)
end

请参考以下链接

Redis-rb是一个用于Ruby语言的Redis客户端库。
Redis事务

广告
将在 10 秒后关闭
bannerAds