Redis 在Golang中使用遇到的坑
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是可选参数,被我忽略了之后,测试代码间歇报错(不会一直报,一直以为是配置问题。纠结了很久,最终还是同事发现的)。
Redis 在Golang中使用遇到的坑的更多相关文章
- Golang中的坑二
Golang中的坑二 for ...range 最近两周用Golang做项目,编写web服务,两周时间写了大概五千行代码(业务代码加单元测试用例代码).用Go的感觉很爽,编码效率高,运行效率也不错,用 ...
- Golang 中的坑 一
Golang 中的坑 短变量声明 Short variable declarations 考虑如下代码: package main import ( "errors" " ...
- Golang中WaitGroup使用的一点坑
Golang中WaitGroup使用的一点坑 Golang 中的 WaitGroup 一直是同步 goroutine 的推荐实践.自己用了两年多也没遇到过什么问题.直到一天午睡后,同事扔过来一段奇怪的 ...
- golang中使用Redis
一.golang中安装Redis github地址:https://github.com/garyburd/redigo 文档地址:http://godoc.org/github.com/garybu ...
- Golang中的自动伸缩和自防御设计
Raygun服务由许多活动组件构成,每个组件用于特定的任务.其中一个模块是用Golang编写的,负责对iOS崩溃报告进行处理.简而言之,它接受本机iOS崩溃报告,查找相关的dSYM文件,并生成开发者可 ...
- 【荐】详解 golang 中的 interface 和 nil
golang 的 nil 在概念上和其它语言的 null.None.nil.NULL一样,都指代零值或空值.nil 是预先说明的标识符,也即通常意义上的关键字.在 golang 中,nil 只能赋值给 ...
- Golang 中使用多维 map
http://tnt.wicast.tk/2015/11/02/golang-multiple-dimension-map/ Golang 的 XML/JSON 解析库乍看使用起来很方便,只要构造一样 ...
- Golang 中操作 Mongo Update 的方法
Golang 和 MongoDB 中的 ISODate 时间交互问题 2018年02月27日 11:28:43 独一无二的小个性 阅读数:357 标签: GolangMongoDB时间交互时间转换 更 ...
- golang中,slice的几个易混淆点
slice在golang中是最常用的类型,一般可以把它作为数组使用,但是比数组要高效呀.不过,我感觉这个东西用的不好坑太多了.还是需要了解下他底层的实现 slice的结构定义 type slice s ...
随机推荐
- sysv-rc-conf介绍
sysv-rc-conf简介 sysv-rc-conf是一个强大的服务管理程序,Ubuntu运行级别Linux 系统任何时候都运行在一个指定的运行级上,不同的运行级的程序和服务都不同,所要完成的工作和 ...
- CentOS 7 下 MySql5.7 主从配置
演示用两台全新MySql服务器: mysql1:10.10.1.55 (主) mysql2:10.10.1.56 (从) 配置主从,步骤如下: STEP 1:在mysql1上创建复制账号 repl ...
- SPSS学习系列之SPSS Statistics(简称SPSS)是什么?
不多说,直接上干货! IBM SPSS Statistics 为业务经理和分析人员提供解决基本业务和研究问题所需的核心统计过程.该软件提供的工具使用户能够快速查看数据.为其他测试拟定假设情况.执行澄清 ...
- java中的this和super(构造函数)
1.this:表示当前对象 常用的代码: public class A{ private String name; public void setName(String name){ this.nam ...
- Integer源码分析
Integer中包含了大量的static方法. 1.分析Integer的缓存机制:首先定义了一个缓存区,IntegerCache,其实就是一个Integer数组cache[],它默认存储了从-128~ ...
- HDU 2191 悼念512汶川大地震遇难同胞
悼念512汶川大地震遇难同胞 急!灾区的食物依然短缺! 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格 ...
- POJ 1577 Falling Leaves 二叉搜索树
HDU 3791 Falling Leaves 二叉搜索树 Figure 1Figure 1 shows a graphical representation of a binary tree of ...
- Upgrading WebLogic Application Environments --官方文档
http://docs.oracle.com/cd/E13179_01/common/docs92/upgrade/dirstruct.html WebLogic Domain Directory S ...
- [转]Support Composite Key in ASP.NET Web API OData
本文转自:https://code.msdn.microsoft.com/Support-Composite-Key-in-d1d53161 he default EntitySetControlle ...
- 三、synchronized同步锁
一.简介 在Java多线程中,我们要实现同步串行最早接触的就是synchronized关键字. 基本语法如下: synchronized(锁) { // 代码块 } sychronized关键字的锁主 ...