sql >> Databasteknik >  >> NoSQL >> Redis

Redis, hur ökar man alla poäng för en zset med ZINCRBY?

Det finns inget kommando för det, ZINCRBY kan bara öka för 1 medlem åt gången. Så om du vill åstadkomma detta på ett atomärt och snabbt sätt måste du göra ett Lua-skript. Som borde se ut ungefär så här (först får du alla medlemmar i den sorterade uppsättningen och sedan itererar du igenom dem och ökar poängen):

local zsetMembers = redis.call('zrange', KEYS[1], '0', '-1') 
for k,member in pairs(zsetMembers) do 
  redis.call('zincrby', KEYS[1], 1, member) 
end

Och du kan skicka det här skriptet till Redis med EVAL kommando.



  1. Hur listar jag alla Redis-databaser?

  2. En översikt över ACID-transaktioner med flera dokument i MongoDB och hur man använder dem

  3. mongoose unik:sant fungerar inte

  4. Hur kan jag få för närvarande autentiserad användare Principal med fjädersäkerhet och Redis i vårstartapplikation