版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
坑点
Redis Hset 命令用于为哈希表中的字段赋值 。
如果哈希表不存在,一个新的哈希表被创建并进行 HSET 操作。
如果字段已经存在于哈希表中,旧值将被覆盖。
返回值
如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。
注意⚠️:这个在纯粹的Redis的终端还可以,但是一旦用到了语言的高级API就很容易产生误解了。
下面以Go语言举例详细说明。
Go语言实例
flag, err := r.red.HSet(key, checkCode, emailCode).Result()
上面Go代码中,如果要判断是否插入成功,应该通过err == nil来判断,而不是通过flag是否为true/false来判断,因为true/false分别代表如下含义:
true:源字段之前为空,新设置了值。
false:源字段之前不为空,新值更新了原来的值。
后续
不单单Hset,Redis中的其他命令也有类似情况,需要多注意。