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

キーの値を合計するRedisのLuaスクリプト

    1. EVAL 少なくとも2つの引数が必要です。スクリプトと、スクリプトに渡すキーの数。この場合、ゼロキーを渡すことになります。つまり、スクリプトは次のように呼び出すことができます。

      redis-cli EVAL "$(cat sum.lua)" 0
      

      または:

      redis-cli --eval sum.lua
      
    2. KEYSから返された値を反復処理するためのループ構造 正しくありませんでした。修正しました。

    3. GETから返された値を変換する必要があります Luaのtonumberを使用して文字列から数値に変換する 機能。

    上記の変更を行うと、次のスクリプトが機能するはずです。

    local sum = 0
    local matches = redis.call('KEYS', 'carlos:*')
    
    for _,key in ipairs(matches) do
        local val = redis.call('GET', key)
        sum = sum + tonumber(val)
    end
    
    return sum
    


    1. 集計で機能しない_idを使用して検索

    2. Mongo DBは、キーフィールドに応じて最も高い値を持つすべてのレコードを検索します

    3. sslを使用してDockerredisコンテナを設定する方法

    4. リモート接続用にRedisポートを開きます