1、从lua脚本传回到go那边的数字是string类型

2、hincrby 返回当前值的计算结果(即存放到redis中的值)

3、hset 一个不存在的key,返回什么呢?即设置失败返回什么错误?(会创建出这个key来,并返回1,如果这个已key存在,则返回0[设值仍然会成功]

4、hget 一个空的值,会返回nil?还是0?(在lua里面返回false,直接返回到go中会报err错:“redis:nil”)

hgetall 一个不存在key,会返回空的map{},不会返回error

5、hmset 返回的始终是 ok:OK(不论key是否已存在)

6、reids的key区分大小写(一样的key,大小写不同,代表的是两个key)

7、zscore,在lua中得到的值是string类型,后端go得到的也是string类型

8、zscore,在lua中取一个不存在的key,在lua中得到的结果是 false(boolean)

如:local r = redis.call('zscore','lt_mobile_package','test') return r;

key:lt_mobile_package,不存在时,lua中得到的r为false(boolean类型),后端go得到的是err(redis: nil),冒号后面有个空格

9、zscore,在lua中取一个不存在的member时,结果和上一条一样

10、eval执行lua脚本的格式:eval script numkeys key [key ...] arg [arg ...](参数依次为:脚本字符串、key的数量、key、带入的参数)

坑:A、后面的key必须传,B、确保和lua script里面要操作的key在同一个redis节点上,否则报错:

  ERR Error running script (call to f_c7be025ded1da0247b48d3acfe266ecf67957030): @user_script:1: @user_script: 1: Lua script attempted to access a non local key in a cluster node

  因hydra的key是可选参数,被我忽略了之后,测试代码间歇报错(不会一直报,一直以为是配置问题。纠结了很久,最终还是同事发现的)。

  

转载于:https://www.cnblogs.com/Denny_Yang/p/8600927.html

Redis 在Golang中使用遇到的坑相关推荐

  1. Go实战--golang中使用redis(redigo和go-redis/redis这个已测试)

    自己做测试了没有问题,虚拟机连不上可以把包下载到本地. 版权声明:本文为博主原创文章,未经博主允许不得转载. http://blog.csdn.net/wangshubo1989/article/de ...

  2. golang中创建logger时候踩过的坑

    golang中创建logger时候踩过的坑 错误的代码 package mainimport ("fmt""io""log""os ...

  3. golang中container/list包中的坑

    转载地址:golang中container/list包中的坑 - Go语言中文网 - Golang中文社区 golang中list包用法可以参看golang中container/list包用法_che ...

  4. Golang中WaitGroup使用的一点坑

    Golang中WaitGroup使用的一点坑 Golang 中的 WaitGroup 一直是同步 goroutine 的推荐实践.自己用了两年多也没遇到过什么问题.直到一天午睡后,同事扔过来一段奇怪的 ...

  5. Go实战--golang中使用redis(redigo和go-redis/redis)

    生命不止,继续 go go go !!! 以前介绍过golang中如何使用sqlite3: <Go实战–go语言操作sqlite数据库(The way to go)> 今天跟大家分享的是如 ...

  6. 颠覆认知——Redis会遇到的15个「坑」,你踩过几个?

    阅读本文大约需要 20 分钟. 大家好,我是 Kaito. 这篇文章,我想和你聊一聊在使用 Redis 时,可能会踩到的「坑」. 如果你在使用 Redis 时,也遇到过以下这些「诡异」的场景,那很大概 ...

  7. Golang中的自动伸缩和自防御设计

    Raygun服务由许多活动组件构成,每个组件用于特定的任务.其中一个模块是用Golang编写的,负责对iOS崩溃报告进行处理.简而言之,它接受本机iOS崩溃报告,查找相关的dSYM文件,并生成开发者可 ...

  8. Redis会遇到的15个「坑」,你踩过几个?

    这篇文章,我想和你聊一聊在使用 Redis 时,可能会踩到的「坑」. 如果你在使用 Redis 时,也遇到过以下这些「诡异」的场景,那很大概率是踩到「坑」了: 明明一个 key 设置了过期时间,怎么变 ...

  9. Go实战--golang中defer的使用

    原址 生命不止,继续 go go go !!! 学习golang这么久了,还没看到类似传统的 try-catch-finally 这种异常捕捉方式.  但是,Go中引入的Exception处理:def ...

  10. Go实战--golang中使用MongoDB(mgo)

    生命不止,继续 go go go !!! 昨天分享了golang如何操作redis数据库,那今天就介绍一下golang中如何使用mongodb数据库. 何为MongoDB? 简介 MongoDB 是由 ...

最新文章

  1. 数据库原理与应用(SQL Server)笔记 第二章 简单数据查询
  2. Token的解密和加密
  3. TS 188字节流结构图
  4. java 排序api_用java api进行sort
  5. mac mysql 默认字符集_MacOS中Mysql设置默认字符集
  6. [Lab1]-EIGRP试验
  7. 查询英语单词 - 有道官方(一)
  8. 如何通过Azure Service Management REST API管理Azure服务
  9. 腾讯位置服务开发应用-使用教程,案例分享,知识总结
  10. 计算机二级基础知识占多少分,计算机二级MS考试题目占分数
  11. html5 摇杆,分享一个虚拟摇杆,比较粗糙,没做优化
  12. 敏感词过滤算法DFA
  13. 华硕笔记本k555拆机图解_华硕K43系列笔记本电脑拆机清灰图文超细版教程
  14. 各国网站域名后缀名大全
  15. 伍斯特理工学院计算机博士招生,伍斯特理工学院计算机科学(计算机/沟通网络)理学硕士研究生申请要求及申请材料要求清单...
  16. eclipse、myeclipse大代码格式化 (自动对齐) 功能,太长的行会被强制换行
  17. puzzle(010.1)自我指涉的选择题
  18. 牛顿迭代法是一种速度很快的迭代方法,但是它需要预先求得导函数。若用差商代替导数,可得下列弦截法
  19. 关于memset(G,0x3f,sizeof(G))的说明
  20. 阿里云code登录,阿里云code使用教程

热门文章

  1. python安装gdal ubuntu_Python与开源GIS教程:1.3. 配置Python开源GIS环境
  2. lpop 原子_从夸克到原子,到元素周期表
  3. python调用库roc_curve()_解决ROC曲线画出来只有一个点的问题
  4. ue 新建html,第四课 开发uehtml官网响应式静态页面(示例代码)
  5. java高级工程师 考试_JAVA高级工程师笔试题及答案
  6. MATLAB--求解矩阵方程
  7. window多个oracle查版本,Oracle SQL多版本VERSION_COUNT产生的可能性
  8. 算法:回溯一 电话拨号数字里面的字母组合 letter-combinations-of-a-phone-number
  9. 引导页onboarding页面Snapkit实现
  10. 算法:Linked List Cycle(环形链表)