sql >> データベース >  >> NoSQL >> Redis

Redis、ZINCRBYを使用してzsetのすべてのスコアを増やす方法は?

    そのためのコマンドはありません。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にプッシュできます コマンド。



    1. MongoDBのPHPでISO日付形式を返す方法は?

    2. モデルパラメータをマングースモデルに渡す

    3. MongoDBでElasticsearchを使用するにはどうすればよいですか?

    4. OSXでのmongodHostnameCanonicalizationWorkerエラー