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事务