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