带有事件驱动程序的Redis multi / exec
|
如何在像
em-hiredis
(使用EventMachine的Ruby驱动程序)这样的事件Redis驱动程序中使用MULTI
/EXEC
(和WATCH
)?如果我运行:
redis.multi do
redis.sadd(\"foo\", \"bar\") do
redis.inc(\"baz\", \"qux\") do
redis.exec do
puts \'yay!\'
end
end
end
end
如果发生了很多事情,应用程序的其他部分很有可能设法在sneak1之前进行操作(例如,假设我有一个计时器,它每秒会增加一些键,并且上面的代码运行需要一秒钟以上的时间,然后某些增量命令将作为MULTI
/EXEC
的一部分发送-如果我想中止该事务该怎么办?然后,碰巧成为该事务一部分的任何增量都将消失。很容易想到更糟的情况)。
我想我可以实现某种锁定,以便在执行MULTI
/EXEC
时无法执行其他任何操作,但这似乎不是一个很好的解决方案,还有其他人找到更好的方法了吗?
没有找到相关结果
已邀请:
1 个回复
厦惫