问一下项目遇到问题:关于redis的事务

问题大概可以归结为一句话:

如何在redis的事务中获取值?


大概的程序逻辑如下所示

redis.pop val (a_val存储在redis的一个队列中)
//系统宕机?
val -> mysql.save


尝试了 jedis.multi,本想进行如下操作来解决

jedis.multi.pop  -> get val
//系统宕机?
val -> mysql.save
mysql -> commit && jedis.multi.exec();

但问题是multi不执行exec()就无法获取到 a_val的值,也就无法进行后续业务操作。

redis.clients.jedis.exceptions.JedisDataException: 
      Please close pipeline or multi block before calling this method.

请问有什么好的解决办法?


评论区

热门反馈

扫码入社