sql >> Databasteknik >  >> NoSQL >> Redis

redis lua script kontra enstaka samtal

Ja, LUA script är den bästa lösningen i fallet med EVALSHA ring:

  • Du arbetar med redis asynkron. Alltså LUA hjälper dig att minska antalet kod och kodläsbarhet.
  • LUA fallet är snabbare på grund av minskad nätverkskommunikation.

Jag tror att du kan skriva din kod med bara 2 kommandon. Du behöver inte exists i din kod.

local path = KEYS[1]
local resourcesPrefix = ARGV[1]
local collectionsPrefix = ARGV[2]
local ret

set ret = redis.call('get',resourcesPrefix..path)
if ret then
   return ret
end  
set ret = redis.call('smembers',collectionsPrefix..path)
if ret then
   return ret
end  

return "notFound" 


  1. Redis:Summan av SCORES i sorterad uppsättning

  2. Kan MongoDB använda ett index när man kontrollerar att det finns ett fält med operatören $exists?

  3. Vad är det snabbaste sättet att kopiera en samling inom samma databas?

  4. Validerar lösenord / bekräfta lösenord med Mongoose-schema