我的RedisClient.java类
@Component
public class RedisDaoSupport{
private static Logger logger = LoggerFactory.getLogger(RedisDaoSupport.class);
@Autowired
private JedisPool jedisPool;
/**
* 添加key value
* @param key
* @param value
*/
public void set(String key,String value){
Jedis jedis = null;
try{
jedis = jedisPool.getResource();
jedis.set(key, value);
}
catch(Exception e){
jedisPool.returnBrokenResource(jedis);
logger.error(e.getMessage());
}
finally{
jedisPool.returnResource(jedis);
}
}
/**
* 获取redis value (String)
* @param key
* @return
*/
public String get(String key){
Jedis jedis = null;
try{
jedis = jedisPool.getResource();
return jedis.get(key);
}
catch(Exception e){
jedisPool.returnBrokenResource(jedis);
logger.error(e.getMessage());
}
finally{
jedisPool.returnResource(jedis);
}
return "";
}
/**
* 模糊查询所有keys 遍历所有集群redis节点,性能会比较慢
* @param pattern
* @return
*/
public Set<String> keys(String pattern){
Jedis jedis = null;
try{
jedis = jedisPool.getResource();
Set<String> set = jedis.keys(pattern);
return set;
}
catch(Exception e){
jedisPool.returnBrokenResource(jedis);
logger.error(e.getMessage());
}
finally{
jedisPool.returnResource(jedis);
}
return null;
}
public Transaction multi(){
Jedis jedis = null;
try{
jedis = jedisPool.getResource();
Transaction tx = jedis.multi();
return tx;
}
catch(Exception e){
jedisPool.returnBrokenResource(jedis);
logger.error(e.getMessage());
}
finally{
jedisPool.returnResource(jedis);
}
return null;
}
}
@Autowired
RedisDaoSupport redisDao;
String key = "XXXX";
Set<String> set = redisDao.keys(key);
Transaction tx = redisDao.multi();//事务处理
for (String s : set) {
tx.set(s, msg);//更新短信内容
}
tx.exec();//提交事务
相关的代码就这些,其他方式都能运行,但是写事务就报错
求助!!!!
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
jedis2.2.1没这个问题,但jedis2.5.2有