[英]Pipelining MULTI/EXEC in Redis
目前还不清楚管道交易是否是一种适当的做法。 流水线的吞吐量增益是显着的。
Benchmark.ips do |x|
x.report("non-pipelined") do
redis.watch("key")
redis.multi
redis.setex("key", 3600, 123)
redis.exec
end
x.report("pipelined") do
redis.watch("key")
redis.pipelined do
redis.multi
redis.setex("key", 3600, 123)
redis.exec
end
end
end
Warming up --------------------------------------
non-pipelined 10.000 i/100ms
pipelined 17.000 i/100ms
Calculating -------------------------------------
non-pipelined 95.237 (± 9.5%) i/s - 470.000 in 5.015991s
pipelined 177.370 (±10.7%) i/s - 884.000 in 5.054327s
我担心MULTI
可能无法成功执行,但SET
仍将在事务之外处理。 这听起来不是一个好习惯。
有什么想法吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.