Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

@yuukigoodman

Riakを運用する上でちょくちょく必要になりそうな小ネタ

Multi Backend

設定次第では、Bucket毎に異なるバックエンドを設定することができる。
一つのRiakノード上で複数種類のバックエンドを動かすことができるので、応用の幅が一気に広がる。
セッションとかはmemory backendにしといて、重要な情報はLevelDBで永続化、とか。

consoleとattach

riak consoleは、Riakを動かした上でシェルに入るコマンドだ。

➜  riak git:(a12d5a2) rel/riak/bin/riak console
config is OK
-config /Users/saisa/devel/riak/rel/riak/data/generated.configs/app.2013.12.15.23.32.59.config -args_file /Users/saisa/devel/riak/rel/riak/data/generated.configs/vm.2013.12.15.23.32.59.args -vm_args /Users/saisa/devel/riak/rel/riak/data/generated.configs/vm.2013.12.15.23.32.59.args
Exec:  /Users/saisa/devel/riak/rel/riak/bin/../erts-5.9.3.1/bin/erlexec -boot /Users/saisa/devel/riak/rel/riak/bin/../releases/2.0.0pre7/riak               -config /Users/saisa/devel/riak/rel/riak/data/generated.configs/app.2013.12.15.23.32.59.config -args_file /Users/saisa/devel/riak/rel/riak/data/generated.configs/vm.2013.12.15.23.32.59.args -vm_args /Users/saisa/devel/riak/rel/riak/data/generated.configs/vm.2013.12.15.23.32.59.args              -pa /Users/saisa/devel/riak/rel/riak/bin/../lib/basho-patches -- console
Root: /Users/saisa/devel/riak/rel/riak/bin/..
Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [smp:8:8] [async-threads:64] [kernel-poll:true] [dtrace]

Eshell V5.9.3.1  (abort with ^G)
(riak@127.0.0.1)1>

すでにRiakが動いている場合は、「attachを使え」と言われる。

➜  riak git:(a12d5a2) rel/riak/bin/riak console
Node is already running - use 'riak attach' instead

で、シェルに入ったらRiakのコードに書いている関数を呼ぶこともできる。
例えば

rel/riak_kv/riak_index.erl
timestamp() ->
    {MegaSeconds,Seconds,MilliSeconds}=os:timestamp(),
    (MegaSeconds * 1000000000000) + (Seconds * 1000000) + MilliSeconds.

これの関数をattachして実行する場合、

➜  riak git:(a12d5a2) rel/riak/bin/riak start
➜  riak git:(a12d5a2) rel/riak/bin/riak attach
Remote Shell: Use "Ctrl-C a" to quit. q() or init:stop() will terminate the riak node.
Erlang R15B03 (erts-5.9.3.1) [source] [64-bit] [smp:8:8] [async-threads:0] [kernel-poll:false] [dtrace]

Eshell V5.9.3.1  (abort with ^G)
(riak@127.0.0.1)1> riak_index:timestamp().
1387118819589664

こんな感じ。
ちなみにErlangでは、

モジュール名:関数名(引数).

で呼ぶ。

オペレーションの際に使う以外に、ソースコードを読みながら「実際どう動いているのかな?」と探ってみるものおもしろい。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?