Transactions 没有多个绝地武士的ERR EXEC

Transactions 没有多个绝地武士的ERR EXEC,transactions,redis,jedis,Transactions,Redis,Jedis,我在学习绝地武士,我不能确切地找出这个密码的问题所在。有人能帮我吗。异常发生在语句tx.exec()处 公共类工厂{ 公共静态void main(字符串[]args){ JedisPool池=新的JedisPool(新的JedisPool配置(),“127.0.0.1”,6379); 绝地武士=pool.getResource(); 管道管道=绝地。管道(); 对于(int i=0;i

我在学习绝地武士,我不能确切地找出这个密码的问题所在。有人能帮我吗。异常发生在语句tx.exec()处

公共类工厂{
公共静态void main(字符串[]args){
JedisPool池=新的JedisPool(新的JedisPool配置(),“127.0.0.1”,6379);
绝地武士=pool.getResource();
管道管道=绝地。管道();
对于(int i=0;i<1000;i++){
pipeline.hincrBy(“Id”,i+”,i);
}
pipeline.exec();
返回资源池(绝地);
jedis=pool.getResource();
事务tx=jedis.multi();
响应图=tx.hgetAll(“Id”);
tx.hincrBy(“Id”,“2”,1);
**tx.exec()**
//地图map1=绝地.hgetAll(“Id”);
返回资源池(绝地);
pool.destroy();
}
}
线程“main”redis.clients.jedis.exceptions.JedisDataException中出现异常:ERR EXEC不带多线程
在redis.clients.jedis.Protocol.processError(Protocol.java:54)中
位于redis.clients.jedis.Protocol.process(Protocol.java:61)
位于redis.clients.jedis.Protocol.read(Protocol.java:122)
位于redis.clients.jedis.Connection.getAll(Connection.java:207)
位于redis.clients.jedis.binarytransation.exec(binarytransation.java:23)
位于com.work.JedisFactory.main(JedisFactory.java:30)

在for循环之前添加pipeline.multi()解决了这个问题。但是在修复之前,在另一行抛出了异常

我想你应该使用pipeline.execute()而不是pipeline.exec(),至少我是这样使用的,而且还可以。

你应该围绕
pipeline.exec()multi()
close()方法进行编码。像这样:

pipeline.multi() ;
pipeline.exec();
pipeline.close(); 

Jedis 2.1.0管道中没有名为execute()的方法
pipeline.multi() ;
pipeline.exec();
pipeline.close();