nownab.log

nownabe's daily posts

RubotyのデータをLevelDBで永続化するruboty-leveldbというGemを作った

Posted on Mar 1, 2015

経緯

会社でチャットボットとしてRubotyを使ってます。

Rubotyはデータの永続化にプラグインを使わないといけないんですが、今はRedis用のプラグインしか用意されていません。 (もしかしたら誰か作ってるのがあるかも)

おそらく、RubotyはHeroku + Redis To Goのような環境で運用されることを想定されていて、Redis用のプラグインしかないんだと思います。 プライベートで使ってるのはその構成なんですが、会社では自前のサーバでDockerコンテナとして動作させています。

外部のサーバに置きたくなくてそうしてるのでデータも内部に持ちたかったんですが、RubotyのためだけにRedisサーバ運用するのもなんだかなーとしばらくデータ永続化せずに使ってました。

けどこのままはアカンなーということで、LevelDBを使ってRubotyのデータを永続化できるruboty-leveldbというプラグインを作成しました!

なぜLevelDB?

正直言うと、余分なサーバ建てずにデータの永続化ができればテキストファイルでも他のKVSでもなんでも良かったんですが、使ってみたかったのでLevelDBにしました。

Rubotyのデータぐらいだと、LevelDBが他のKVSに比べてどういいのかとかは全然見えません。

個人的にはKyotoCabinetが好きで使ってたんですが、ほぼ同じ感覚で使えました。 LevelDBが流行りならLevelDBでも全然いいなーという感想です。

LevelDBについてはここがまとまってました。

使い方

Qiitaに書きました。

感想

Rubotyまわりはとてもコードが綺麗でよく見てるんですが、本当に参考になります。 ruboty-leveldbもほとんどruboty-redisまんまですw

…今気づいたんですがRubotyのREADMEでruboty-leveldbが紹介されてる…!! ありがとうございます!!

https://github.com/r7kamura/ruboty