执行事务的大致代码如下:

redisClient := GetRedisClient()
pipe := redisClient.TxPipeline()
err := pipe.ZAdd(k, arrZ...).Result()
//...
arr, err := pipe.Exec()
if err != nil {
log.Println(err, arr) //这里打印错误 EXECABORT Transaction discarded because of previous errors
}

陆续排除了以下可能:

  • 是不是redis的内存满了
  • 是不是redis服务器保存了个什么状态
  • 是不是因为竞争太激烈,所以出错

改了一行代码后,错误不一样了:

pipe := redisClient.Pipeline() //使用批量的管道,但是不使用事务

错误变为:ERR wrong number of arguments for 'zadd' command

认真看看,原来是特定条件下, arrZ这个数组可能会为空。

修改为:

redisClient := GetRedisClient()
pipe := redisClient.TxPipeline()
if len(arrZ)>0{
err := pipe.ZAdd(k, arrZ...).Result()
}
//...
arr, err := pipe.Exec()
if err != nil {
log.Println(err, arr)
}

问题解决。根本上还是命令参数错误导致的,但是事务模式下给出了错误的提示。

最新文章

  1. asp.net mvc 绑定客户端post过来的复杂JSON数据
  2. Python第一天 - 迭代
  3. cetos6.5安装Tomcat
  4. poj2367 拓扑序
  5. 基于ThinkPHP框架的简单的后台管理系统
  6. KMP算法的Next数组详解(转)
  7. 【原版的】Redis事件驱动内核
  8. nginx做反向负载均衡,后端服务器获取真实客户端ip
  9. struts2整合JFreechart 饼图、折线图、柱形图
  10. P1772 [ZJOI2006]物流运输
  11. Cordova与现有框架的结合,Cordova插件使用教程,Cordova自定义插件,框架集成Cordova,将Cordova集成到现有框架中
  12. js有哪些变态的语法?
  13. Linux进程描述符task_struct结构体详解--Linux进程的管理与调度(一)【转】
  14. 使用composer遇到的问题及解决方法
  15. flex布局 响应式布局
  16. 一个讲课截屏 清明DAY2
  17. 【Web】Sublime Text 3 安装+注册+汉化
  18. linux下的c++filt 命令
  19. 枚举类型内部函数 enumerate
  20. 获取设备信息——获取客户端ip地址和mac地址

热门文章

  1. CF157A Game Outcome 题解
  2. Python第二周 str的方法
  3. Java面向对象~类和对象&方法,类方法
  4. Mysql 主从复制机制
  5. WinFrm中多线程操作窗体属性
  6. Error: Not found: 'package:json_annotation/json_annotation.dart'
  7. ACwing1212. 地宫取宝
  8. JAVA获取指定日期是星期几
  9. IDEA启动报错:Error:java: Compilation failed: internal java compiler error
  10. 在制造业的工业2.0中应用MOM系统