项目中有多个缓存的维护需要使用到redis的事务,在使用时出现:
redis.clients.jedis.exceptions.JedisDataException: EXECABORT Transaction discarded because of previous errors
这是哪里出现问题了呢???
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这个错误信息redis.clients.jedis.exceptions.JedisDataException: EXECABORT Transaction discarded because of previous errors
表明在使用Redis事务时发生了错误,导致整个事务被放弃。具体来说,这通常是因为在MULTI和EXEC命令之间的某个命令执行失败了。Redis事务具有以下特性:
当你遇到这个错误时,应该检查以下几个方面:
解决方法:
WATCH
命令来监视键,这样如果有其他客户端修改了被监视的键,事务会因为WATCH
触发的CAS
(检查并设置)机制而失败,但这种失败不会报EXECABORT
错误。希望以上信息能帮助你解决问题。如果还有其他疑问,欢迎继续提问!