sql >> Databáze >  >> NoSQL >> Redis

Redis, jak zvýšit všechna skóre zset pomocí ZINCRBY?

Na to není žádný příkaz, ZINCRBY může inkrementovat pouze pro 1 člena najednou. Takže pokud toho chcete dosáhnout atomickým a rychlým způsobem, musíte udělat skript Lua. Což by mělo vypadat nějak takto (nejprve získáte všechny členy setříděné sady a poté je projdete a zvýšíte skóre):

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

A tento skript můžete odeslat do Redis pomocí EVAL příkaz.



  1. Nepodařilo se připojit k 127.0.0.1:27017, důvod:errno:111 Připojení odmítnuto

  2. Laravel Socket.io Připojeno, ale nepřijímá data

  3. MongoDB na počítači se systémem Windows 7:Nelze vytvořit žádné připojení

  4. Nelze se připojit k MongoDB kvůli nesprávnému URI