我对 Redis 事务和管道之间的区别以及最终如何将管道与 Booksleeve 一起使用有点混淆。我看到Booksleeve支持 Redis事务功能( MULTI
/ EXEC
),但在其 API/测试中没有提及流水线功能。然而,在其他实现中很明显管道和事务之间存在区别,即原子性,正如下面的 redis-ruby 版本所证明的那样,但在某些地方,这些术语似乎可以互换使用。
redis-ruby 实现:
r.pipelined {
# these commands will be pipelined
r.get("insensitive_key")
}
r.multi {
# these commands will be executed atomically
r.set("sensitive_key")
}
我只是使用MULTI
/EXEC
代替,但他们似乎会阻止所有其他用户,直到事务完成(在我的情况下不是必需的),所以我担心他们的表现。有没有人在 Booksleeve 中使用过管道,或者对如何实现它们有任何想法?