そのためのコマンドはありません。ZINCRBYは一度に1つのメンバーに対してのみインクリメントできます。したがって、これをアトミックかつ高速な方法で実行したい場合は、Luaスクリプトを実行する必要があります。これは次のようになります(最初にソートされたセットのすべてのメンバーを取得し、次にそれらを反復処理してスコアをインクリメントします):
local zsetMembers = redis.call('zrange', KEYS[1], '0', '-1')
for k,member in pairs(zsetMembers) do
redis.call('zincrby', KEYS[1], 1, member)
end
そして、EVAL
を使用してこのスクリプトをRedisにプッシュできます コマンド。