Riak 使用1 (gen_server封装)

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 of
ebot_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 }}),
Else
end ;
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用户手册就行了。

你可能感兴趣的:(Riak 使用1 (gen_server封装))