看起来以下 Redis Lua 脚本返回
第一个
看起来使用
这是每个人都观察到并依赖于作为事实的东西吗?最安全的Redis Lua脚本检查返回
false
而不是文档中所说的 nil
,存在矛盾:> eval "local r = redis.call('get', 'none'); if r==nil then return 42 end" 0
(nil)
> eval "local r = redis.call('get', 'none'); if r==false then return 42 end" 0
(integer) 42
> eval "local r = redis.call('get', 'none'); if not r then return 42 end" 0
(integer) 42
第一个
eval
在条件r==nil
处失败,第二个eval
似乎证明了返回值是false
。看起来使用
not r
是我手头上最安全的选项,但文档here说GET
命令将返回nil
。这是每个人都观察到并依赖于作为事实的东西吗?最安全的Redis Lua脚本检查返回
nil
的命令是否使用not r
?