Es scheint, die folgende Redis Lua Script false
statt nil
zurückgibt, die zu widerspricht, was das Dokument sagt:Redis Lua Script redis.call ('get', 'nonexisting') Rückgabewert
> 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
die erste eval
unter der Bedingung gescheitert r==nil
, scheint der zweite eval
zu beweisen, dass der Rückgabewert false
ist Es scheint mit not r
die sicherste Option, die ich in der Hand haben, aber die Dokumentation here sagt, dass die GET
Befehl nil
Ist das etwas, was jeder sonst hat beobachtet, und unter Berufung auf eine Tatsache, dass das sicherste Redis Lua Script Überprüfung auf Befehle geben würde Rückkehr nil
ist not r
zu benutzen?
Hmm ... Eine Art nilophobia in Redis? –