SETNX返回0的原因判定:是键重复还是服务器操作失败?
关于SETNX返回0的判定问题
当SETNX返回0时,可以100%确定是目标键已经存在,不存在“服务器错误导致操作失败但键实际不存在”的情况。
原因如下:
SETNX是Redis的原子命令,逻辑明确:仅当键不存在时才设置键值对,返回1;若键已存在则不做任何操作,返回0。- 如果出现服务器错误、连接异常等执行失败的场景,Redis不会返回0,而是会返回错误响应(比如错误字符串、nil),或者直接导致客户端抛出连接/执行异常,不会用0来标识命令执行失败。
内容的提问来源于stack exchange,提问作者Jiří Chmiel
相关产品推荐
相关产品推荐

