这样做的目的是在数据库事务中包装一个redis事务,因此如果db提交失败,那么redis事务也会爆炸,这样我lpop编辑的元素就不会消失,下面是10条记录的简单示例: redis.multi do |multi| 10.times do
attrs= JSON.parse(multi.lpop("foo
我认为LPOP和LPOPRPUSH是原子操作到pop值的有效选项。但是,我有一个任务,每2秒从列表中弹出1000个值--这是对Redis的1000个请求。我会使用SPOP,它可以在一个请求中返回X值。场景是使用Redis批量插入到DB中。而不是每秒钟向MySQL插入数千次--我要推到Redis,每2秒获取值,然后一次插入到MySQL。如果我要向Redis中的实际值添加时间戳,我想我可以使用SPOP,并且为了避免一个值永远停留在集合中的可能性,我将运行一个SPOP x 1000循环,直到null为止。