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