Riak的介绍,网上一艘一大堆,但怎么用?看看github上Riak的readme,看得懂,实际写,茫然。
github是个好东西,在github上搜riakc_pb_socket:start_link (这半行代码的意思,就不需要说了吧),选择语言Erlang,并search for code,看那个顺眼,点开看看。呵,找到一个https://github.com/matteoredaelli/ebot/blob/master/src/ebot_db_util.erl ,去看看在哪里用了Riak,
open_or_create_db () ->{ ok , Hostname } = ebot_util : get_env ( db_hostname ),{ ok , Port } = ebot_util : get_env ( db_port ),case ? EBOT_DB_BACKEND ofebot_db_backend_couchdb ->application : start ( ibrowse ),application : start ( couchbeam ),Prefix = "" ,Options = [],Conn = couchbeam : server_connection ( Hostname , Port , Prefix , Options ),case couchbeam : server_info ( Conn ) of{ ok , _ Version } ->couchbeam : open_or_create_db ( Conn , "ebot" , []);Else ->error_logger : error_report ({ ? MODULE , ? LINE , { init , cannot_connect_to_db , ? EBOT_DB_BACKEND , Else }}),Elseend ;ebot_db_backend_riak_pb ->riakc_pb_socket : start_link ( Hostname , Port );_ Else ->error_logger : error_report ({ ? MODULE , ? LINE , { init , unsupported_backend , ? EBOT_DB_BACKEND }}),{ error , unsupported_backend }end .
细看之下,发现这丫的用gen_server封装了Riak的各种操作,比较爽,拿来用用:
1、确定封装方案
gen_server state记录字段,pid :Riak连接之后,会生成一个Pid,后续的各种操作将会使用这个参数,因此需要保存在State record中。
2、init
初始化,需要做的事情,A,连接Riak,B,将Pid保存在State中
3、各种操作
这个时候看Riak用户手册就行了。