hoge-hogeoのひきこもごも

インフラエンジニアだけど形を持ったインフラを触ったことがない人の徒然

redisに大量データを投入したい

脳死bashマンだから

 

for i in `seq 1 1000000`;do redis-cli -h $ホスト setex key$i $ttl val;done

 

とか書いてたけど、めっちゃ遅い。

 

luaで書いたら早かった。100万件で4秒以下。

 

> eval "for i = 1, 1000000 do redis.call('setex', i, 300, 1111111111) end" 0
(nil)
(3.69s)

 

> info

~中略~

# Keyspace
db0:keys=1000000,expires=1000000,avg_ttl=185692

 

redis-cliの引数にlua渡してサクサク作ったらもっと便利そう。