LoginSignup
1
2

More than 5 years have passed since last update.

AeroSpikeのluaコード(件数取得、ttl確認)

Last updated at Posted at 2016-06-20

1.AeroSpike

KVSの一つ。KVSのKVSといった感じ。ドキュメント型ではない。

件数取得したり、ttl取得したりするときがあるのでチョットLuaコードを残しておく。
ttlは最近のAeroSpikeClientだと、getTtlとかで取得できてしまうが、これを作ったのは
結構前(そういうのが無かった時代のお話)。

show setで件数見れるじゃん。と思ってサポートに聞いたらそれは一致しているか怪しい。
とのことだった。後は、複数台運用していたら合計しないといけないから面倒。

2.test.luaを作る

test.lua
function count(s)
    function mapper(rec)
            return 1
    end
    local function reducer(v1, v2)
        return v1 + v2
    end
    return s : map(mapper) : reduce(reducer)
end


function getttl(rec)

        if aerospike:exists(rec) then
                ttl = record.ttl(rec)
                return string.format("rec ttl = %d", ttl)
        end

end

件数を取得する関数と、ttlを取得する関数を定義

3.aqlコマンド打つ。

aql
set LUA_USERPATH 'lua_code'
register module '/home/xxxxxxx/test.lua'
set TIMEOUT 100000

4.実行

4.1件数取得したい場合

AGGREGATE test.count() ON xxxx.hogehoge
xxxx:スキーマ
hogehoge:テーブル名

4.2TTLを確認したい場合

EXECUTE test.getttl() on xxxx.hogehoge where PK='1'
PKはKeyを指定

5.moduleをremoveする場合

remove module test.lua

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2