`
acme_ltt
  • 浏览: 52236 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

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用户手册就行了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics