阅读redis交易文档时我一无所获:
事务中的所有命令都被序列化并执行 按顺序。 永远不会发生由另一个人发出的请求 在Redis执行期间为客户提供服务 交易。这样可以确保命令作为 单个隔离操作。
发件人:https://redis.io/topics/transactions
大胆的片段是令我烦恼的片段。这是否意味着在一个请求中设置密钥A的值时,另一个要为密钥B设置值的请求将被阻止,直到第一个请求完成为止?
答案 0 :(得分:1)
否,使用 MULTI
打开事务不会阻止其他并发连接到 redis。
https://redis.io/topics/transactions#usage
<块引用>使用 MULTI 命令输入 Redis 事务。该命令始终回复 OK。此时用户可以发出多个命令。 Redis 不会执行这些命令,而是将它们排入队列。调用 EXEC
后,所有命令都会执行。
您在交易中的命令会被收集,直到您关闭交易。之后,命令将被一次执行而不会中断。这意味着其他连接仍然可以执行它们的命令before仍然打开的事务的命令,如果它们是在之后提交的,而它们仍然是在关闭事务之前提交的。